editeng/source/editeng/impedit5.cxx |    5 +++++
 1 file changed, 5 insertions(+)

New commits:
commit c89d6d690ba4b48c235752a6193aa77d9ecb7384
Author:     Maxim Monastirsky <momonas...@gmail.com>
AuthorDate: Thu Jun 15 11:16:29 2023 +0300
Commit:     Maxim Monastirsky <momonas...@gmail.com>
CommitDate: Thu Jun 15 19:33:48 2023 +0200

    tdf#103064 editeng: invalidate spelling results on style change
    
    Because a style might define a different langauge. This is
    similar to what we do for DF in SetAttribs/SetParaAttribs.
    See also alternative approach in SwLangHelper::SetLanguageStatus
    or SwAnnotationWin::SetLanguage.
    
    Change-Id: I38caa716ec95958580f4ce0ede70eff5d1024e13
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153108
    Tested-by: Jenkins
    Reviewed-by: Maxim Monastirsky <momonas...@gmail.com>

diff --git a/editeng/source/editeng/impedit5.cxx 
b/editeng/source/editeng/impedit5.cxx
index 3a87c4b5bfb7..8438f0be7632 100644
--- a/editeng/source/editeng/impedit5.cxx
+++ b/editeng/source/editeng/impedit5.cxx
@@ -87,6 +87,9 @@ void ImpEditEngine::SetStyleSheet( sal_Int32 nPara, 
SfxStyleSheet* pStyle )
         pNode->SetStyleSheet( pStyle, aStatus.UseCharAttribs() );
         if ( pStyle )
             StartListening(*pStyle, DuplicateHandling::Prevent);
+
+        if (pNode->GetWrongList())
+            pNode->GetWrongList()->ResetInvalidRange(0, pNode->Len());
         ParaAttribsChanged( pNode );
     }
     if (IsUpdateLayout())
@@ -110,6 +113,8 @@ void ImpEditEngine::UpdateParagraphsWithStyleSheet( 
SfxStyleSheet* pStyle )
             else
                 pNode->SetStyleSheet( pStyle, false );
 
+            if (pNode->GetWrongList())
+                pNode->GetWrongList()->ResetInvalidRange(0, pNode->Len());
             ParaAttribsChanged( pNode );
         }
     }

Reply via email to