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 )