diff options
author | Eike Rathke <erack@redhat.com> | 2015-09-14 17:27:41 +0200 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2015-09-14 17:37:19 +0200 |
commit | 97ad6393525a928b5dfe2a6562d7604446da7af0 (patch) | |
tree | 665df393c20a3f6fe51790ec76ccbf8e81d1d542 | |
parent | 22b80ac8e213ff63ce4f60e7d491f12cb42db313 (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.cxx | 16 |
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; |