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/+/99607
Reviewed-by: Michael Stahl <michael.stahl@cib.de>
Tested-by: Jenkins
diff --git a/cui/source/dialogs/SpellDialog.cxx b/cui/source/dialogs/SpellDialog.cxx
index 26c3b3b..204a0b3 100644
--- a/cui/source/dialogs/SpellDialog.cxx
+++ b/cui/source/dialogs/SpellDialog.cxx
@@ -1671,8 +1671,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;