diff options
author | Eike Rathke <erack@redhat.com> | 2015-09-14 17:27:41 +0200 |
---|---|---|
committer | Tor Lillqvist <tml@collabora.com> | 2015-09-17 07:16:46 +0000 |
commit | 50d4e7c928c372a14a5396971bc4c4ac1f437b51 (patch) | |
tree | a4a459b0e99f70860254aa0ecb592ed7b8550521 /sc/source/core | |
parent | b12309df2dd529b1d23af4bcd10ed4421fcf92be (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
(cherry picked from commit 97ad6393525a928b5dfe2a6562d7604446da7af0)
Reviewed-on: https://gerrit.libreoffice.org/18573
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Tor Lillqvist <tml@collabora.com>
Diffstat (limited to 'sc/source/core')
-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 153b77f6f86f..bb6431a84783 100644 --- a/sc/source/core/data/document.cxx +++ b/sc/source/core/data/document.cxx @@ -2961,10 +2961,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; |