From 5ea35685395e2dfede904fcf5fffbcdcecd30723 Mon Sep 17 00:00:00 2001 From: Eike Rathke Date: Wed, 9 Nov 2016 15:12:39 +0100 Subject: Resolves: tdf#103689 do not slice 3D area broadcasters into separate sheets MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: Ie167e5e5e953c3e8064b8e128d52f6aa6740575b (cherry picked from commit 129eddc18b4f2cb1320b60bf68de537cf86b60f2) Reviewed-on: https://gerrit.libreoffice.org/30720 Tested-by: Jenkins Reviewed-by: Caolán McNamara Tested-by: Caolán McNamara --- sc/source/core/data/bcaslot.cxx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/sc/source/core/data/bcaslot.cxx b/sc/source/core/data/bcaslot.cxx index c171b44c8edb..64eecf9a915d 100644 --- a/sc/source/core/data/bcaslot.cxx +++ b/sc/source/core/data/bcaslot.cxx @@ -736,6 +736,11 @@ void ScBroadcastAreaSlotMachine::StartListeningArea( } else { + // A new area needs to be inserted to the corresponding slots, for 3D + // ranges for all sheets, do not slice into per sheet areas or the + // !bDone will break too early (i.e. after the first sheet) if + // subsequent listeners are to be added. + ScBroadcastArea* pArea = nullptr; bool bDone = false; for (SCTAB nTab = rRange.aStart.Tab(); !bDone && nTab <= rRange.aEnd.Tab(); ++nTab) @@ -750,7 +755,6 @@ void ScBroadcastAreaSlotMachine::StartListeningArea( SCSIZE nOff = nStart; SCSIZE nBreak = nOff + nRowBreak; ScBroadcastAreaSlot** pp = ppSlots + nOff; - ScBroadcastArea* pArea = nullptr; while ( !bDone && nOff <= nEnd ) { if ( !*pp ) -- cgit v1.2.3