diff options
author | Szymon Kłos <szymon.klos@collabora.com> | 2022-07-19 12:08:58 +0200 |
---|---|---|
committer | Szymon Kłos <szymon.klos@collabora.com> | 2022-07-26 16:55:05 +0200 |
commit | 8b5a6af435952398bfc6328c10e8f3cdae475312 (patch) | |
tree | de2578827b37f114b6645798bf56af4f7323a775 | |
parent | a6586ab2e6a5bb352f2958067cbe88095b6e2ada (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.cxx | 44 |
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 ) |