From d48ccabe922fcdb28dbbeec17a4ecc2ee9de2404 Mon Sep 17 00:00:00 2001 From: Eike Rathke Date: Mon, 14 Sep 2015 17:27:41 +0200 Subject: Resolves: tdf#93895 broadcast cell changes when multi-selection was pasted MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It is not sufficient to collect the cells, one has to broadcast on the collection. (cherry picked from commit 97ad6393525a928b5dfe2a6562d7604446da7af0) Conflicts: sc/source/core/data/document.cxx Change-Id: I11f889936aff43f958c56789e539809289819752 Reviewed-on: https://gerrit.libreoffice.org/18575 Reviewed-by: Caolán McNamara Tested-by: Caolán McNamara --- sc/source/core/data/document.cxx | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx index 8c26dd8d8cf3..b20bcf77c90b 100644 --- a/sc/source/core/data/document.cxx +++ b/sc/source/core/data/document.cxx @@ -2941,10 +2941,18 @@ void ScDocument::CopyMultiRangeFromClip( // Listener aufbauen nachdem alles inserted wurde StartListeningFromClip(aDestRange.aStart.Col(), aDestRange.aStart.Row(), aDestRange.aEnd.Col(), aDestRange.aEnd.Row(), rMark, nInsFlag ); - // nachdem alle Listener aufgebaut wurden, kann gebroadcastet werden - 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; -- cgit v1.2.3