sc/source/ui/view/tabview3.cxx |    7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

New commits:
commit c30306ad19f7ba022628f4f88ba5b92b8a1af402
Author:     Eike Rathke <er...@redhat.com>
AuthorDate: Tue May 31 22:48:28 2022 +0200
Commit:     Eike Rathke <er...@redhat.com>
CommitDate: Wed Jun 1 00:08:25 2022 +0200

    MoveCursorAbs: it is cheaper to check for marks first and then formula mode
    
    ... so repeated travelling with cell cursor will be less affected.
    
    Change-Id: I3f42356e66b2ec8acf60c0e0c777f8c34b9a952a
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135211
    Reviewed-by: Eike Rathke <er...@redhat.com>
    Tested-by: Jenkins

diff --git a/sc/source/ui/view/tabview3.cxx b/sc/source/ui/view/tabview3.cxx
index b261f04e0119..ae960b0a8c1f 100644
--- a/sc/source/ui/view/tabview3.cxx
+++ b/sc/source/ui/view/tabview3.cxx
@@ -1236,13 +1236,14 @@ void ScTabView::MoveCursorAbs( SCCOL nCurX, SCROW 
nCurY, ScFollowMode eMode,
     }
     else
     {
-        if (!bShift && !SC_MOD()->IsFormulaMode())
+        if (!bShift)
         {
             // Remove all marked data on cursor movement unless the Shift is
-            // locked or while editing a formula.
+            // locked or while editing a formula. It is cheaper to check for
+            // marks first and then formula mode.
             ScMarkData& rMark = aViewData.GetMarkData();
             bool bMarked = rMark.IsMarked() || rMark.IsMultiMarked();
-            if (bMarked)
+            if (bMarked && !SC_MOD()->IsFormulaMode())
             {
                 rMark.ResetMark();
                 DoneBlockMode();

Reply via email to