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

New commits:
commit 5511f3de1afe53088416d793ce08d61fd961dfa9
Author:     Caolán McNamara <caol...@redhat.com>
AuthorDate: Wed Jul 29 11:09:46 2020 +0100
Commit:     Caolán McNamara <caol...@redhat.com>
CommitDate: Wed Jul 29 14:53:28 2020 +0200

    tdf#133958 only move the selection to the error if its not already there
    
    Change-Id: I3046c842cc6c8bcc867c79989a8978d382b08269
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99606
    Reviewed-by: Michael Stahl <michael.st...@cib.de>
    Tested-by: Jenkins

diff --git a/cui/source/dialogs/SpellDialog.cxx 
b/cui/source/dialogs/SpellDialog.cxx
index 68bdb15339c2..b3b66d9e6bf0 100644
--- a/cui/source/dialogs/SpellDialog.cxx
+++ b/cui/source/dialogs/SpellDialog.cxx
@@ -1672,8 +1672,17 @@ void SentenceEditWindow_Impl::MoveErrorMarkTo(sal_Int32 
nStart, sal_Int32 nEnd,
     aSet.Put(SvxWeightItem(WEIGHT_BOLD, EE_CHAR_WEIGHT_CTL));
 
     m_xEditEngine->QuickSetAttribs(aSet, ESelection(0, nStart, 0, nEnd));
-    // so the editview will autoscroll to make this visible
-    m_xEditView->SetSelection(ESelection(0, nStart));
+
+    // Set the selection so the editview will autoscroll to make this visible
+    // unless (tdf#133958) the selection already overlaps this range
+    ESelection aCurrentSelection = m_xEditView->GetSelection();
+    aCurrentSelection.Adjust();
+    bool bCurrentSelectionInRange = nStart <= aCurrentSelection.nEndPos && 
aCurrentSelection.nStartPos <= nEnd;
+    if (!bCurrentSelectionInRange)
+    {
+        m_xEditView->SetSelection(ESelection(0, nStart));
+    }
+
     Invalidate();
 
     m_nErrorStart = nStart;
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to