From 7e40584e8945ee555f8ad4584c5b2c95a8c6dde6 Mon Sep 17 00:00:00 2001 From: Michael Stahl Date: Tue, 11 Aug 2020 17:54:09 +0200 Subject: tdf#134746 sw: fix redline hiding of at-char fly on empty paragraphs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit If a merged paragraph has no extents, a fly anchored at the start or at the end should be shown. (regression from 28b77c89dfcafae82cf2a6d85731b643ff9290e5) Change-Id: I78135f3c033cf08aad81c86b0ac693528e3f3f8e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100543 Tested-by: Jenkins Reviewed-by: Michael Stahl (cherry picked from commit f3cb59c46398b3a0646b8b374d5626f715fa6884) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100703 Reviewed-by: Caolán McNamara --- sw/source/core/layout/frmtool.cxx | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/sw/source/core/layout/frmtool.cxx b/sw/source/core/layout/frmtool.cxx index 745c1818d859..7aed05b0bdce 100644 --- a/sw/source/core/layout/frmtool.cxx +++ b/sw/source/core/layout/frmtool.cxx @@ -1274,6 +1274,17 @@ bool IsAnchoredObjShown(SwTextFrame const& rFrame, SwFormatAnchor const& rAnchor ret = false; auto const pAnchor(rAnchor.GetContentAnchor()); auto iterFirst(pMergedPara->extents.cbegin()); + if (iterFirst == pMergedPara->extents.end() + && (rAnchor.GetAnchorId() == RndStdIds::FLY_AT_PARA + || rAnchor.GetAnchorId() == RndStdIds::FLY_AT_CHAR)) + { + ret = (&pAnchor->nNode.GetNode() == pMergedPara->pFirstNode + && (rAnchor.GetAnchorId() == RndStdIds::FLY_AT_PARA + || pAnchor->nContent == 0)) + || (&pAnchor->nNode.GetNode() == pMergedPara->pLastNode + && (rAnchor.GetAnchorId() == RndStdIds::FLY_AT_PARA + || pAnchor->nContent == pMergedPara->pLastNode->Len())); + } auto iter(iterFirst); SwTextNode const* pNode(pMergedPara->pFirstNode); for ( ; ; ++iter) -- cgit