summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKohei Yoshida <kohei.yoshida@collabora.com>2014-10-11 14:18:10 -0400
committerKohei Yoshida <kohei.yoshida@collabora.com>2014-10-11 14:22:15 -0400
commit424bfaa773e58d6b609ac7f64907db4b542d1315 (patch)
tree70e9d9d3df747c65babf92648cd1998242b13f02
parent4027bc476a1df9df1924447795ddc2d8b7744e20 (diff)
fdo#80846: Broadcast changes before EndUndo().
EndUndo() calls PostDataChanged(), which renders the recalculated formula cells. Not broadcasting before EndUndo causes some dependent formula cells to not get recalculated. This one unfortunately is not currently unit-testable as this behavior depends on the presence of ScTabViewShell.... Change-Id: I86288608b7f2627cda7c74be27a18029832775ef
-rw-r--r--sc/source/ui/undo/undoblk3.cxx23
1 files changed, 10 insertions, 13 deletions
diff --git a/sc/source/ui/undo/undoblk3.cxx b/sc/source/ui/undo/undoblk3.cxx
index 49e2280f7362..de1f238e5eba 100644
--- a/sc/source/ui/undo/undoblk3.cxx
+++ b/sc/source/ui/undo/undoblk3.cxx
@@ -170,12 +170,20 @@ void ScUndoDeleteContents::DoChange( const bool bUndo )
SetChangeTrack();
}
+ if (nFlags & IDF_CONTENTS)
+ {
+ // Broadcast only when the content changes. fdo#74687
+ if (mpDataSpans)
+ BroadcastChanges(*mpDataSpans);
+ else
+ BroadcastChanges(aRange);
+ }
+
ScTabViewShell* pViewShell = ScTabViewShell::GetActiveViewShell();
if ( !( (pViewShell) && pViewShell->AdjustRowHeight(
aRange.aStart.Row(), aRange.aEnd.Row() ) ) )
/*A*/ pDocShell->PostPaint( aRange, PAINT_GRID | PAINT_EXTRAS, nExtFlags );
- pDocShell->PostDataChanged();
if (pViewShell)
pViewShell->CellContentChanged();
@@ -188,16 +196,9 @@ void ScUndoDeleteContents::Undo()
DoChange( true );
EndUndo();
- if (nFlags & IDF_CONTENTS)
- {
- // Broadcast only when the content changes. fdo#74687
- if (mpDataSpans)
- BroadcastChanges(*mpDataSpans);
- else
- BroadcastChanges(aRange);
- }
HelperNotifyChanges::NotifyIfChangesListeners(*pDocShell, aRange);
+// pDocShell->PostDataChanged();
}
void ScUndoDeleteContents::Redo()
@@ -206,10 +207,6 @@ void ScUndoDeleteContents::Redo()
DoChange( false );
EndRedo();
- if (nFlags & IDF_CONTENTS)
- // Broadcast only when the content changes. fdo#74687
- BroadcastChanges(aRange);
-
HelperNotifyChanges::NotifyIfChangesListeners(*pDocShell, aRange);
}