From 129eddc18b4f2cb1320b60bf68de537cf86b60f2 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 Change-Id: Ie167e5e5e953c3e8064b8e128d52f6aa6740575b --- 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 8eb426b35af3..64cf53cdfd57 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