summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2015-09-14 17:27:41 +0200
committerEike Rathke <erack@redhat.com>2015-09-14 17:37:19 +0200
commit97ad6393525a928b5dfe2a6562d7604446da7af0 (patch)
tree665df393c20a3f6fe51790ec76ccbf8e81d1d542
parent22b80ac8e213ff63ce4f60e7d491f12cb42db313 (diff)
Resolves: tdf#93895 broadcast cell changes when multi-selection was pasted
It is not sufficient to collect the cells, one has to broadcast on the collection. Change-Id: I11f889936aff43f958c56789e539809289819752
-rw-r--r--sc/source/core/data/document.cxx16
1 files changed, 12 insertions, 4 deletions
diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx
index e485885c8cf8..f4aacca7caaf 100644
--- a/sc/source/core/data/document.cxx
+++ b/sc/source/core/data/document.cxx
@@ -2960,10 +2960,18 @@ void ScDocument::CopyMultiRangeFromClip(
// Create Listener after everything has been inserted
StartListeningFromClip(aDestRange.aStart.Col(), aDestRange.aStart.Row(),
aDestRange.aEnd.Col(), aDestRange.aEnd.Row(), rMark, nInsFlag );
- // Re-broadcast after all Listener have been created
- SetDirtyFromClip(
- aDestRange.aStart.Col(), aDestRange.aStart.Row(), aDestRange.aEnd.Col(), aDestRange.aEnd.Row(),
- rMark, nInsFlag, aBroadcastSpans);
+
+ {
+ ScBulkBroadcast aBulkBroadcast( GetBASM());
+
+ // Set formula cells dirty and collect non-formula cells.
+ SetDirtyFromClip(
+ aDestRange.aStart.Col(), aDestRange.aStart.Row(), aDestRange.aEnd.Col(), aDestRange.aEnd.Row(),
+ rMark, nInsFlag, aBroadcastSpans);
+
+ BroadcastAction aAction(*this);
+ aBroadcastSpans.executeColumnAction(*this, aAction);
+ }
if (bResetCut)
pClipDoc->GetClipParam().mbCutMode = false;