[Libreoffice-commits] core.git: Branch 'libreoffice-7-1' - sw/source
Michael Stahl (via logerrit)
logerrit at kemper.freedesktop.org
Fri Nov 27 11:50:51 UTC 2020
sw/source/core/doc/docbm.cxx | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
New commits:
commit fd596591b385a8b03459a7dd3f79e65a59f530f4
Author: Michael Stahl <Michael.Stahl at cib.de>
AuthorDate: Thu Nov 26 19:55:27 2020 +0100
Commit: Michael Stahl <michael.stahl at cib.de>
CommitDate: Fri Nov 27 12:50:19 2020 +0100
sw_fieldmarkhide: fix getFieldMarkFor() to return innermost field
... like it's supposed to; if it finds the outer field and then the next
field is inside but ends *before* the rPos then the loop is erroneously
terminated.
Change-Id: Ic5e469d1c05cecd7feca275dc1689af2c40567f3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106710
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl at cib.de>
(cherry picked from commit 6a11f94ab366e1d736e97e31e908e86aa5d8b533)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106689
diff --git a/sw/source/core/doc/docbm.cxx b/sw/source/core/doc/docbm.cxx
index 406685c58691..c71178e1f005 100644
--- a/sw/source/core/doc/docbm.cxx
+++ b/sw/source/core/doc/docbm.cxx
@@ -1405,10 +1405,11 @@ namespace sw::mark
return nullptr;
auto pFieldmark(*itFieldmark);
for ( ; itFieldmark != m_vFieldmarks.end()
- && (**itFieldmark).IsCoveringPosition(rPos); ++itFieldmark)
+ && (**itFieldmark).GetMarkStart() <= rPos; ++itFieldmark)
{ // find the innermost fieldmark
- if (pFieldmark->GetMarkStart() < (**itFieldmark).GetMarkStart()
- || (**itFieldmark).GetMarkEnd() < pFieldmark->GetMarkEnd())
+ if (rPos < (**itFieldmark).GetMarkEnd()
+ && (pFieldmark->GetMarkStart() < (**itFieldmark).GetMarkStart()
+ || (**itFieldmark).GetMarkEnd() < pFieldmark->GetMarkEnd()))
{
pFieldmark = *itFieldmark;
}
More information about the Libreoffice-commits
mailing list