sc/source/ui/view/tabview3.cxx |   44 +++++++++++++++++++++++++++++------------
 1 file changed, 32 insertions(+), 12 deletions(-)

New commits:
commit a6f2daef52ff2aa8af4e7f876ea5f3dd9beb4be1
Author:     Szymon Kłos <szymon.k...@collabora.com>
AuthorDate: Tue Jul 19 12:08:58 2022 +0200
Commit:     Szymon Kłos <szymon.k...@collabora.com>
CommitDate: Thu Jul 21 11:12:13 2022 +0200

    MarkColumns should modify formula if editing is active
    
    Change-Id: I2ad4df0e6ad87bdad689112683bd29babf127502
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137227
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com>
    Reviewed-by: Mert Tumer <mert.tu...@collabora.com>

diff --git a/sc/source/ui/view/tabview3.cxx b/sc/source/ui/view/tabview3.cxx
index 20954d8711cc..a658ac854375 100644
--- a/sc/source/ui/view/tabview3.cxx
+++ b/sc/source/ui/view/tabview3.cxx
@@ -1630,12 +1630,22 @@ void ScTabView::MarkColumns(SCCOL nCol, sal_Int16 
nModifier)
     if ((nModifier & KEY_SHIFT) == KEY_SHIFT)
         bMoveIsShift = true;
 
-    DoneBlockMode( nModifier != 0 );
-    InitBlockMode( nStartCol, 0, nTab, true, true);
-    MarkCursor( nCol, rDoc.MaxRow(), nTab );
-    bMoveIsShift = false;
-    SetCursor( nCol, 0 );
-    SelectionChanged();
+    if ( SC_MOD()->IsFormulaMode() )
+    {
+        DoneRefMode( nModifier != 0 );
+        InitRefMode( nCol, 0, nTab, SC_REFTYPE_REF );
+        UpdateRef( nCol, rDoc.MaxRow(), nTab );
+        bMoveIsShift = false;
+    }
+    else
+    {
+        DoneBlockMode( nModifier != 0 );
+        InitBlockMode( nStartCol, 0, nTab, true, true);
+        MarkCursor( nCol, rDoc.MaxRow(), nTab );
+        bMoveIsShift = false;
+        SetCursor( nCol, 0 );
+        SelectionChanged();
+    }
 }
 
 void ScTabView::MarkRows(SCROW nRow, sal_Int16 nModifier)
@@ -1647,12 +1657,22 @@ void ScTabView::MarkRows(SCROW nRow, sal_Int16 
nModifier)
     if ((nModifier & KEY_SHIFT) == KEY_SHIFT)
         bMoveIsShift = true;
 
-    DoneBlockMode( nModifier != 0 );
-    InitBlockMode( 0, nStartRow, nTab, true, false, true );
-    MarkCursor( rDoc.MaxCol(), nRow, nTab );
-    bMoveIsShift = false;
-    SetCursor( 0, nRow );
-    SelectionChanged();
+    if ( SC_MOD()->IsFormulaMode() )
+    {
+        DoneRefMode( nModifier != 0 );
+        InitRefMode( 0, nRow, nTab, SC_REFTYPE_REF );
+        UpdateRef( rDoc.MaxCol(), nRow, nTab );
+        bMoveIsShift = false;
+    }
+    else
+    {
+        DoneBlockMode( nModifier != 0 );
+        InitBlockMode( 0, nStartRow, nTab, true, false, true );
+        MarkCursor( rDoc.MaxCol(), nRow, nTab );
+        bMoveIsShift = false;
+        SetCursor( 0, nRow );
+        SelectionChanged();
+    }
 }
 
 void ScTabView::MarkDataArea( bool bIncludeCursor )

Reply via email to