summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2016-11-09 15:12:39 +0100
committerEike Rathke <erack@redhat.com>2016-11-09 15:18:30 +0100
commit129eddc18b4f2cb1320b60bf68de537cf86b60f2 (patch)
tree37f15713f996f2d226d69678406430a0cabb2ded
parent989cf68b68eda98b9f3942bb738e60ec649707dc (diff)
Resolves: tdf#103689 do not slice 3D area broadcasters into separate sheets
Change-Id: Ie167e5e5e953c3e8064b8e128d52f6aa6740575b
-rw-r--r--sc/source/core/data/bcaslot.cxx6
1 files changed, 5 insertions, 1 deletions
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 )