summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSzymon Kłos <szymon.klos@collabora.com>2022-07-19 12:08:58 +0200
committerSzymon Kłos <szymon.klos@collabora.com>2022-07-26 16:55:05 +0200
commit8b5a6af435952398bfc6328c10e8f3cdae475312 (patch)
treede2578827b37f114b6645798bf56af4f7323a775
parenta6586ab2e6a5bb352f2958067cbe88095b6e2ada (diff)
MarkColumns should modify formula if editing is active
Change-Id: I2ad4df0e6ad87bdad689112683bd29babf127502 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137227 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Mert Tumer <mert.tumer@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137462 Tested-by: Jenkins Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
-rw-r--r--sc/source/ui/view/tabview3.cxx44
1 files changed, 32 insertions, 12 deletions
diff --git a/sc/source/ui/view/tabview3.cxx b/sc/source/ui/view/tabview3.cxx
index 1e0255788977..feab66cbd411 100644
--- a/sc/source/ui/view/tabview3.cxx
+++ b/sc/source/ui/view/tabview3.cxx
@@ -1632,12 +1632,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)
@@ -1649,12 +1659,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 )