cui/source/dialogs/SpellDialog.cxx |   21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)

New commits:
commit f7de9473b2fddd84d03fb521709d805486292800
Author: Mike Kaganski <mike.kagan...@collabora.com>
Date:   Mon Apr 16 14:25:16 2018 +0100

    tdf#116725: justify selection to handle right-to-left selections
    
    Change-Id: I6298a87170236059ff08a1f891ead21236be663a
    Reviewed-on: https://gerrit.libreoffice.org/52979
    Tested-by: Jenkins <c...@libreoffice.org>
    Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com>

diff --git a/cui/source/dialogs/SpellDialog.cxx 
b/cui/source/dialogs/SpellDialog.cxx
index 5e7537d9509c..e3242b486b30 100644
--- a/cui/source/dialogs/SpellDialog.cxx
+++ b/cui/source/dialogs/SpellDialog.cxx
@@ -1242,15 +1242,16 @@ bool SentenceEditWindow_Impl::PreNotify( NotifyEvent& 
rNEvt )
         {
             TextEngine* pTextEngine = GetTextEngine();
             TextView* pTextView = pTextEngine->GetActiveView();
-            const TextSelection& rCurrentSelection = pTextView->GetSelection();
+            TextSelection aCurrentSelection = pTextView->GetSelection();
+            aCurrentSelection.Justify();
             //determine if the selection contains a field
             bool bHasFieldLeft = false;
             bool bHasErrorLeft = false;
 
-            bool bHasRange = rCurrentSelection.HasRange();
+            bool bHasRange = aCurrentSelection.HasRange();
             sal_uInt8 nSelectionType = 0; // invalid type!
 
-            TextPaM aCursor(rCurrentSelection.GetStart());
+            TextPaM aCursor(aCurrentSelection.GetStart());
             const TextCharAttrib* pBackAttr = pTextEngine->FindCharAttrib( 
aCursor, TEXTATTR_SPELL_BACKGROUND );
             const TextCharAttrib* pErrorAttr = pTextEngine->FindCharAttrib( 
aCursor, TEXTATTR_SPELL_ERROR );
             const TextCharAttrib* pBackAttrLeft = nullptr;
@@ -1261,21 +1262,21 @@ bool SentenceEditWindow_Impl::PreNotify( NotifyEvent& 
rNEvt )
             if(bHasRange)
             {
                 if(pBackAttr &&
-                        pBackAttr->GetStart() == 
rCurrentSelection.GetStart().GetIndex() &&
-                        pBackAttr->GetEnd() == 
rCurrentSelection.GetEnd().GetIndex())
+                        pBackAttr->GetStart() == 
aCurrentSelection.GetStart().GetIndex() &&
+                        pBackAttr->GetEnd() == 
aCurrentSelection.GetEnd().GetIndex())
                 {
                     nSelectionType = FULL;
                 }
                 else if(pErrorAttr &&
-                        pErrorAttr->GetStart() <= 
rCurrentSelection.GetStart().GetIndex() &&
-                        pErrorAttr->GetEnd() >= 
rCurrentSelection.GetEnd().GetIndex())
+                        pErrorAttr->GetStart() <= 
aCurrentSelection.GetStart().GetIndex() &&
+                        pErrorAttr->GetEnd() >= 
aCurrentSelection.GetEnd().GetIndex())
                 {
                     nSelectionType = INSIDE_YES;
                 }
                 else
                 {
                     nSelectionType = bHasField||bHasError ? BRACE : OUTSIDE_NO;
-                    while(aCursor.GetIndex() < 
rCurrentSelection.GetEnd().GetIndex())
+                    while(aCursor.GetIndex() < 
aCurrentSelection.GetEnd().GetIndex())
                     {
                         ++aCursor.GetIndex();
                         const TextCharAttrib* pIntBackAttr = 
pTextEngine->FindCharAttrib( aCursor, TEXTATTR_SPELL_BACKGROUND );
@@ -1296,8 +1297,8 @@ bool SentenceEditWindow_Impl::PreNotify( NotifyEvent& 
rNEvt )
                 const TextCharAttrib* pCurAttr = pBackAttr ? pBackAttr : 
pErrorAttr;
                 if(pCurAttr)
                 {
-                    nSelectionType = pCurAttr->GetStart() == 
rCurrentSelection.GetStart().GetIndex() ?
-                            LEFT_NO : pCurAttr->GetEnd() == 
rCurrentSelection.GetEnd().GetIndex() ? RIGHT_NO : INSIDE_NO;
+                    nSelectionType = pCurAttr->GetStart() == 
aCurrentSelection.GetStart().GetIndex() ?
+                            LEFT_NO : pCurAttr->GetEnd() == 
aCurrentSelection.GetEnd().GetIndex() ? RIGHT_NO : INSIDE_NO;
                 }
                 else
                     nSelectionType = OUTSIDE_NO;
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to