summaryrefslogtreecommitdiff
path: root/sc/source
diff options
context:
space:
mode:
authorNiklas Nebel <nn@openoffice.org>2002-03-26 12:06:18 +0000
committerNiklas Nebel <nn@openoffice.org>2002-03-26 12:06:18 +0000
commit823ab051ce7a509242695d56eace1ea291f080c4 (patch)
tree8b4c6ba2283e3d90e0cc33429ae2a2f9096fe5f2 /sc/source
parenta69b4a188676453134b0094dbda534b5b97c1ea8 (diff)
#97627# ScUndoUpdateAreaLink: Delete old contents before copying back
Diffstat (limited to 'sc/source')
-rw-r--r--sc/source/ui/undo/undoblk3.cxx27
1 files changed, 18 insertions, 9 deletions
diff --git a/sc/source/ui/undo/undoblk3.cxx b/sc/source/ui/undo/undoblk3.cxx
index e678d8fb7dc8..7a5bb59e33bf 100644
--- a/sc/source/ui/undo/undoblk3.cxx
+++ b/sc/source/ui/undo/undoblk3.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: undoblk3.cxx,v $
*
- * $Revision: 1.6 $
+ * $Revision: 1.7 $
*
- * last change: $Author: er $ $Date: 2001-04-18 12:24:01 $
+ * last change: $Author: nn $ $Date: 2002-03-26 13:06:18 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -1971,24 +1971,30 @@ void ScUndoUpdateAreaLink::DoChange( const BOOL bUndo ) const
if ( bWithInsert )
{
pDoc->FitBlock( aNewRange, aOldRange );
+ pDoc->DeleteAreaTab( aOldRange, IDF_ALL );
pUndoDoc->UndoToDocument( aOldRange, IDF_ALL, FALSE, pDoc );
}
else
- pUndoDoc->CopyToDocument(
- ScRange(aOldRange.aStart, ScAddress(nEndX,nEndY,nEndZ)),
- IDF_ALL, FALSE, pDoc );
+ {
+ ScRange aCopyRange( aOldRange.aStart, ScAddress(nEndX,nEndY,nEndZ) );
+ pDoc->DeleteAreaTab( aCopyRange, IDF_ALL );
+ pUndoDoc->CopyToDocument( aCopyRange, IDF_ALL, FALSE, pDoc );
+ }
}
else
{
if ( bWithInsert )
{
pDoc->FitBlock( aOldRange, aNewRange );
+ pDoc->DeleteAreaTab( aNewRange, IDF_ALL );
pRedoDoc->CopyToDocument( aNewRange, IDF_ALL, FALSE, pDoc );
}
else
- pRedoDoc->CopyToDocument(
- ScRange(aOldRange.aStart, ScAddress(nEndX,nEndY,nEndZ)),
- IDF_ALL, FALSE, pDoc );
+ {
+ ScRange aCopyRange( aOldRange.aStart, ScAddress(nEndX,nEndY,nEndZ) );
+ pDoc->DeleteAreaTab( aCopyRange, IDF_ALL );
+ pRedoDoc->CopyToDocument( aCopyRange, IDF_ALL, FALSE, pDoc );
+ }
}
ScRange aWorkRange( aNewRange.aStart, ScTripel( nEndX, nEndY, nEndZ ) );
@@ -2000,7 +2006,10 @@ void ScUndoUpdateAreaLink::DoChange( const BOOL bUndo ) const
aWorkRange.aEnd.SetCol(MAXCOL);
if ( aNewRange.aEnd.Row() != aOldRange.aEnd.Row() )
aWorkRange.aEnd.SetRow(MAXROW);
- pDocShell->PostPaint( aWorkRange, PAINT_GRID );
+
+ if ( !pDocShell->AdjustRowHeight( aWorkRange.aStart.Row(), aWorkRange.aEnd.Row(), aWorkRange.aStart.Tab() ) )
+ pDocShell->PostPaint( aWorkRange, PAINT_GRID );
+
pDocShell->PostDataChanged();
ScTabViewShell* pViewShell = ScTabViewShell::GetActiveViewShell();
if (pViewShell)