[Libreoffice-commits] core.git: Branch 'distro/nisz/libreoffice-7-0' - sw/source
László Németh (via logerrit)
logerrit at kemper.freedesktop.org
Mon Mar 1 16:13:34 UTC 2021
sw/source/core/txtnode/txtedt.cxx | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
New commits:
commit f33078700d65f2763ea56f2d04f93142dc93c61c
Author: László Németh <nemeth at numbertext.org>
AuthorDate: Tue Dec 1 15:12:54 2020 +0100
Commit: Gabor Kelemen <kelemen.gabor2 at nisz.hu>
CommitDate: Mon Mar 1 17:12:59 2021 +0100
tdf#66043 sw: fix spell checking of word with deletion
Correct words were underlined as spelling mistakes,
if they contained tracked deletions, related to the
unwanted CH_TXTATR_INWORD characters (result of
removing tracked deletions) at calling spell checking
API functions. Fix it by checking the "invalid"
words without CH_TXTATR_INWORD characters, too.
Change-Id: I6d8a8d619a571dfb613991cb8cf67faab57de4c0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106988
Tested-by: László Németh <nemeth at numbertext.org>
Reviewed-by: László Németh <nemeth at numbertext.org>
(cherry picked from commit d08e41379d39a3b552c2c8a34fe1c4849bb80bc9)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111710
Tested-by: Gabor Kelemen <kelemen.gabor2 at nisz.hu>
Reviewed-by: Gabor Kelemen <kelemen.gabor2 at nisz.hu>
diff --git a/sw/source/core/txtnode/txtedt.cxx b/sw/source/core/txtnode/txtedt.cxx
index cbc5f4f396d7..e707c8e8d423 100644
--- a/sw/source/core/txtnode/txtedt.cxx
+++ b/sw/source/core/txtnode/txtedt.cxx
@@ -1025,7 +1025,12 @@ bool SwTextNode::Spell(SwSpellArgs* pArgs)
}
if( pArgs->xSpellAlt.is() )
{
- if (IsSymbolAt(aScanner.GetBegin()))
+ if ( IsSymbolAt(aScanner.GetBegin()) ||
+ // redlines can leave "in word" character within word,
+ // we must remove them before spell checking
+ // to avoid false alarm
+ ( bRestoreString && pArgs->xSpeller->isValid( rWord.replaceAll(OUStringChar(CH_TXTATR_INWORD), ""),
+ static_cast<sal_uInt16>(eActLang), Sequence< PropertyValue >() ) ) )
{
pArgs->xSpellAlt = nullptr;
}
@@ -1327,8 +1332,12 @@ SwRect SwTextFrame::AutoSpell_(SwTextNode & rNode, sal_Int32 nActPos)
{
// check for: bAlter => xHyphWord.is()
OSL_ENSURE(!bSpell || xSpell.is(), "NULL pointer");
-
- if( !xSpell->isValid( rWord, static_cast<sal_uInt16>(eActLang), Sequence< PropertyValue >() ) )
+ if( !xSpell->isValid( rWord, static_cast<sal_uInt16>(eActLang), Sequence< PropertyValue >() ) &&
+ // redlines can leave "in word" character within word,
+ // we must remove them before spell checking
+ // to avoid false alarm
+ (!bRestoreString || !xSpell->isValid( rWord.replaceAll(OUStringChar(CH_TXTATR_INWORD), ""),
+ static_cast<sal_uInt16>(eActLang), Sequence< PropertyValue >() ) ) )
{
sal_Int32 nSmartTagStt = nBegin;
sal_Int32 nDummy = 1;
More information about the Libreoffice-commits
mailing list