summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKohei Yoshida <kohei.yoshida@collabora.com>2014-10-11 14:18:10 -0400
committerCaolán McNamara <caolanm@redhat.com>2014-10-13 08:17:37 +0000
commiteb5f25984307cd9e63e9cc88cbdb09228d66b097 (patch)
treea1fb8e6462c519622a04a169f13b3e12cab7a66a
parent4b2f0915f9f3bff7d2476ec41a272e5263fbb312 (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 (cherry picked from commit 424bfaa773e58d6b609ac7f64907db4b542d1315) Reviewed-on: https://gerrit.libreoffice.org/11927 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r--sc/source/ui/undo/undoblk3.cxx23
1 files changed, 9 insertions, 14 deletions
diff --git a/sc/source/ui/undo/undoblk3.cxx b/sc/source/ui/undo/undoblk3.cxx
index 03edabff1fba..67841346000e 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,15 +196,6 @@ 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);
}
@@ -206,10 +205,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);
}