diff options
-rw-r--r-- | sc/source/ui/inc/tabview.hxx | 2 | ||||
-rw-r--r-- | sc/source/ui/undo/undoblk.cxx | 4 | ||||
-rw-r--r-- | sc/source/ui/undo/undoutil.cxx | 6 | ||||
-rw-r--r-- | sc/source/ui/unoobj/viewuno.cxx | 2 | ||||
-rw-r--r-- | sc/source/ui/view/dbfunc3.cxx | 6 | ||||
-rw-r--r-- | sc/source/ui/view/tabview2.cxx | 14 | ||||
-rw-r--r-- | sc/source/ui/view/tabview3.cxx | 6 | ||||
-rw-r--r-- | sc/source/ui/view/viewfun2.cxx | 4 | ||||
-rw-r--r-- | sc/source/ui/view/viewfun3.cxx | 4 | ||||
-rw-r--r-- | sc/source/ui/view/viewfunc.cxx | 7 |
10 files changed, 29 insertions, 26 deletions
diff --git a/sc/source/ui/inc/tabview.hxx b/sc/source/ui/inc/tabview.hxx index 0bdc143d3e62..81151f10fe48 100644 --- a/sc/source/ui/inc/tabview.hxx +++ b/sc/source/ui/inc/tabview.hxx @@ -521,7 +521,7 @@ public: void InitBlockMode( SCCOL nCurX, SCROW nCurY, SCTAB nCurZ, bool bTestNeg = false, bool bCols = false, bool bRows = false, bool bForceNeg = false ); - void InitOwnBlockMode(); + void InitOwnBlockMode( const ScRange& rMarkRange ); void DoneBlockMode( bool bContinue = false ); bool IsBlockMode() const; diff --git a/sc/source/ui/undo/undoblk.cxx b/sc/source/ui/undo/undoblk.cxx index be93e37bd35f..998330bfe632 100644 --- a/sc/source/ui/undo/undoblk.cxx +++ b/sc/source/ui/undo/undoblk.cxx @@ -1690,7 +1690,7 @@ void ScUndoUseScenario::Undo() if (pViewShell) { pViewShell->DoneBlockMode(); - pViewShell->InitOwnBlockMode(); + pViewShell->InitOwnBlockMode( aRange ); } ScDocument& rDoc = pDocShell->GetDocument(); @@ -1747,7 +1747,7 @@ void ScUndoUseScenario::Redo() { pViewShell->SetTabNo( nTab ); pViewShell->DoneBlockMode(); - pViewShell->InitOwnBlockMode(); + pViewShell->InitOwnBlockMode( aRange ); } pDocShell->UseScenario( nTab, aName, false ); diff --git a/sc/source/ui/undo/undoutil.cxx b/sc/source/ui/undo/undoutil.cxx index fc0e71b69db5..de9a50ef8283 100644 --- a/sc/source/ui/undo/undoutil.cxx +++ b/sc/source/ui/undo/undoutil.cxx @@ -43,11 +43,11 @@ void ScUndoUtil::MarkSimpleBlock( const ScDocShell* pDocShell, if ( nViewTab < nStartZ || nViewTab > nEndZ ) pViewShell->SetTabNo( nStartZ ); + const ScRange aMarkRange( nStartX, nStartY, nStartZ, nEndX, nEndY, nEndZ); pViewShell->DoneBlockMode(); pViewShell->MoveCursorAbs( nStartX, nStartY, SC_FOLLOW_JUMP, false, false ); - pViewShell->InitOwnBlockMode(); - pViewShell->GetViewData().GetMarkData(). - SetMarkArea( ScRange( nStartX, nStartY, nStartZ, nEndX, nEndY, nEndZ ) ); + pViewShell->InitOwnBlockMode( aMarkRange ); + pViewShell->GetViewData().GetMarkData().SetMarkArea( aMarkRange ); pViewShell->MarkDataChanged(); } diff --git a/sc/source/ui/unoobj/viewuno.cxx b/sc/source/ui/unoobj/viewuno.cxx index e933830534d3..5c6d599dd74f 100644 --- a/sc/source/ui/unoobj/viewuno.cxx +++ b/sc/source/ui/unoobj/viewuno.cxx @@ -724,7 +724,7 @@ sal_Bool SAL_CALL ScTabViewObj::select( const uno::Any& aSelection ) if ( !lcl_TabInRanges( rViewData.GetTabNo(), rRanges ) ) pViewSh->SetTabNo( rFirst.aStart.Tab() ); pViewSh->DoneBlockMode(); - pViewSh->InitOwnBlockMode(); + pViewSh->InitOwnBlockMode( rFirst ); /* TODO: or even the overall range? */ rViewData.GetMarkData().MarkFromRangeList( rRanges, true ); pViewSh->MarkDataChanged(); rViewData.GetDocShell()->PostPaintGridAll(); // Marks (old&new) diff --git a/sc/source/ui/view/dbfunc3.cxx b/sc/source/ui/view/dbfunc3.cxx index 29479c7ef78f..517734290d16 100644 --- a/sc/source/ui/view/dbfunc3.cxx +++ b/sc/source/ui/view/dbfunc3.cxx @@ -587,10 +587,10 @@ void ScDBFunc::DoSubTotals( const ScSubTotalParam& rParam, bool bRecord, pDBData->SetArea( nTab, aNewParam.nCol1,aNewParam.nRow1, aNewParam.nCol2,aNewParam.nRow2 ); rDoc.CompileDBFormula(); + const ScRange aMarkRange( aNewParam.nCol1, aNewParam.nRow1, nTab, aNewParam.nCol2, aNewParam.nRow2, nTab); DoneBlockMode(); - InitOwnBlockMode(); - rMark.SetMarkArea( ScRange( aNewParam.nCol1,aNewParam.nRow1,nTab, - aNewParam.nCol2,aNewParam.nRow2,nTab ) ); + InitOwnBlockMode( aMarkRange ); + rMark.SetMarkArea( aMarkRange ); MarkDataChanged(); pDocSh->PostPaint(ScRange(0, 0, nTab, rDoc.MaxCol(), rDoc.MaxRow(), nTab), diff --git a/sc/source/ui/view/tabview2.cxx b/sc/source/ui/view/tabview2.cxx index ecfcd036c750..aae991eaf799 100644 --- a/sc/source/ui/view/tabview2.cxx +++ b/sc/source/ui/view/tabview2.cxx @@ -329,7 +329,7 @@ bool ScTabView::IsMarking( SCCOL nCol, SCROW nRow, SCTAB nTab ) const && nBlockStartZ == nTab; } -void ScTabView::InitOwnBlockMode() +void ScTabView::InitOwnBlockMode( const ScRange& rMarkRange ) { if (IsBlockMode()) return; @@ -340,12 +340,12 @@ void ScTabView::InitOwnBlockMode() GetSelEngine()->CursorPosChanging( false, false ); meBlockMode = Own; - nBlockStartX = 0; - nBlockStartY = 0; - nBlockStartZ = 0; - nBlockEndX = 0; - nBlockEndY = 0; - nBlockEndZ = 0; + nBlockStartX = rMarkRange.aStart.Col(); + nBlockStartY = rMarkRange.aStart.Row(); + nBlockStartZ = rMarkRange.aStart.Tab(); + nBlockEndX = rMarkRange.aEnd.Col(); + nBlockEndY = rMarkRange.aEnd.Row(); + nBlockEndZ = rMarkRange.aEnd.Tab(); SelectionChanged(); // status is checked with mark set } diff --git a/sc/source/ui/view/tabview3.cxx b/sc/source/ui/view/tabview3.cxx index 7e6fec2f93f1..4471b3662c35 100644 --- a/sc/source/ui/view/tabview3.cxx +++ b/sc/source/ui/view/tabview3.cxx @@ -1241,7 +1241,7 @@ void ScTabView::MoveCursorAbs( SCCOL nCurX, SCROW nCurY, ScFollowMode eMode, { rMark.ResetMark(); DoneBlockMode(); - InitOwnBlockMode(); + InitOwnBlockMode( ScRange( nCurX, nCurY, aViewData.GetTabNo())); MarkDataChanged(); } } @@ -1737,7 +1737,9 @@ void ScTabView::Unmark() void ScTabView::SetMarkData( const ScMarkData& rNew ) { DoneBlockMode(); - InitOwnBlockMode(); + ScRange aMarkArea( ScAddress::UNINITIALIZED ); + rNew.GetMarkArea( aMarkArea ); + InitOwnBlockMode( aMarkArea ); aViewData.GetMarkData() = rNew; MarkDataChanged(); diff --git a/sc/source/ui/view/viewfun2.cxx b/sc/source/ui/view/viewfun2.cxx index fd19f833540d..49b8fc14f30f 100644 --- a/sc/source/ui/view/viewfun2.cxx +++ b/sc/source/ui/view/viewfun2.cxx @@ -2008,7 +2008,7 @@ bool ScViewFunc::SearchAndReplace( const SvxSearchItem* pSearchItem, } DoneBlockMode(true); // don't delete mark - InitOwnBlockMode(); + InitOwnBlockMode( ScRange( nCol, nRow, nStartTab, nCol, nRow, nEndTab)); // If search starts at the beginning don't ask again whether it shall start at the beginning bool bFirst = true; @@ -2359,7 +2359,7 @@ void ScViewFunc::UseScenario( const OUString& rName ) SCTAB nTab = GetViewData().GetTabNo(); DoneBlockMode(); - InitOwnBlockMode(); + InitOwnBlockMode( ScRange( GetViewData().GetCurX(), GetViewData().GetCurY(), nTab)); pDocSh->UseScenario( nTab, rName ); } diff --git a/sc/source/ui/view/viewfun3.cxx b/sc/source/ui/view/viewfun3.cxx index 679557d020b4..5d080719c3e3 100644 --- a/sc/source/ui/view/viewfun3.cxx +++ b/sc/source/ui/view/viewfun3.cxx @@ -111,7 +111,7 @@ void ScViewFunc::CutToClip() if ( !rMark.IsMarked() && !rMark.IsMultiMarked() ) // mark the range if not marked yet { DoneBlockMode(); - InitOwnBlockMode(); + InitOwnBlockMode( aRange ); rMark.SetMarkArea( aRange ); MarkDataChanged(); } @@ -1270,7 +1270,7 @@ bool ScViewFunc::PasteFromClip( InsertDeleteFlags nFlags, ScDocument* pClipDoc, if (GetViewData().IsActive()) { DoneBlockMode(); - InitOwnBlockMode(); + InitOwnBlockMode( aUserRange ); } rMark.SetMarkArea( aUserRange ); MarkDataChanged(); diff --git a/sc/source/ui/view/viewfunc.cxx b/sc/source/ui/view/viewfunc.cxx index 8d444122a7ed..a9a2b36d6349 100644 --- a/sc/source/ui/view/viewfunc.cxx +++ b/sc/source/ui/view/viewfunc.cxx @@ -1063,7 +1063,7 @@ void ScViewFunc::ApplyPatternLines( const ScPatternAttr& rAttr, const SvxBoxItem aMarkRange = ScRange( GetViewData().GetCurX(), GetViewData().GetCurY(), GetViewData().GetTabNo() ); DoneBlockMode(); - InitOwnBlockMode(); + InitOwnBlockMode( aMarkRange ); aFuncMark.SetMarkArea(aMarkRange); MarkDataChanged(); } @@ -2366,9 +2366,10 @@ void ScViewFunc::SetMarkedWidthOrHeight( bool bWidth, ScSizeMode eMode, sal_uInt SCCOL nCol = GetViewData().GetCurX(); SCROW nRow = GetViewData().GetCurY(); SCTAB nTab = GetViewData().GetTabNo(); + const ScRange aMarkRange( nCol, nRow, nTab); DoneBlockMode(); - InitOwnBlockMode(); - rMark.SetMultiMarkArea( ScRange( nCol,nRow,nTab ) ); + InitOwnBlockMode( aMarkRange ); + rMark.SetMultiMarkArea( aMarkRange ); MarkDataChanged(); } |