summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2016-11-09 15:12:39 +0100
committerCaolán McNamara <caolanm@redhat.com>2016-11-11 15:30:04 +0000
commit5ea35685395e2dfede904fcf5fffbcdcecd30723 (patch)
tree65678c6d4fa7eb5d99b059036b4f4787917279f1
parente64460d8d2e6deeb234d744f7618f11e70385e81 (diff)
Resolves: tdf#103689 do not slice 3D area broadcasters into separate sheets
Change-Id: Ie167e5e5e953c3e8064b8e128d52f6aa6740575b (cherry picked from commit 129eddc18b4f2cb1320b60bf68de537cf86b60f2) Reviewed-on: https://gerrit.libreoffice.org/30720 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
-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 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 )