summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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 )