Resolves: tdf#147398 Test Intersects() instead of Contains(), tdf#119083
Regression from
commit 8406139062d9ffe1daed32aefe4e261c6c55d63e
CommitDate: Mon Dec 6 15:45:35 2021 +0100
process broadcasts for adjacent cells together (tdf#119083)
that changed single cell broadcasts to blocks of rows broadcasts and
- if (rAreaRange.Contains( rAddress))
+ if (rAreaRange.Contains( rRange))
but a block of rows may be distributed over several broadcast
areas so rRange is not contained within one rAreaRange and thus
was not broadcasted. Testing for intersection instead fixes this.
Change-Id: I10700296ebc897e4b7b7752e0e6bcb480085b487
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130027
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
diff --git a/sc/source/core/data/bcaslot.cxx b/sc/source/core/data/bcaslot.cxx
index 3126918..6869ca2 100644
--- a/sc/source/core/data/bcaslot.cxx
+++ b/sc/source/core/data/bcaslot.cxx
@@ -281,7 +281,7 @@ bool ScBroadcastAreaSlot::AreaBroadcast( const ScHint& rHint)
ScBroadcastArea* pArea = (*aIter).mpArea;
const ScRange& rAreaRange = pArea->GetRange();
if (rAreaRange.Contains( rRange))
if (rAreaRange.Intersects( rRange))
{
if (pArea->IsGroupListening())
{