From c78c42f63f91f28dfae7340d379fa1b8136633c0 Mon Sep 17 00:00:00 2001 From: Eike Rathke Date: Mon, 15 Oct 2018 23:10:07 +0200 Subject: Resolves: tdf#119623 record group positions also for top cells MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit So listeners can be re-established for remaining grouped cells if top cell is deleted (which ends listening and probably was the cause to exclude them here). Change-Id: Ic91b74c65013452d56b5cfbc132722c4314743c8 Reviewed-on: https://gerrit.libreoffice.org/61808 Reviewed-by: Eike Rathke Tested-by: Jenkins (cherry picked from commit fbec372ba829b3f32b3c0874920b2ee36220ef9d) Reviewed-on: https://gerrit.libreoffice.org/61818 Tested-by: Xisco Faulí Reviewed-by: Caolán McNamara Tested-by: Caolán McNamara --- sc/source/core/data/column4.cxx | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/sc/source/core/data/column4.cxx b/sc/source/core/data/column4.cxx index 832351d275a7..d08321073668 100644 --- a/sc/source/core/data/column4.cxx +++ b/sc/source/core/data/column4.cxx @@ -1539,10 +1539,12 @@ void ScColumn::EndListeningIntersectedGroups( { ScFormulaCell* pFC = sc::formula_block::at(*it->data, aPos.second); ScFormulaCellGroupRef xGroup = pFC->GetCellGroup(); - if (xGroup && !pFC->IsSharedTop()) + if (xGroup) { - // End listening. - pFC->EndListeningTo(rCxt); + if (!pFC->IsSharedTop()) + // End listening. + pFC->EndListeningTo(rCxt); + if (pGroupPos) // Record the position of the top cell of the group. pGroupPos->push_back(xGroup->mpTopCell->aPos); @@ -1555,10 +1557,12 @@ void ScColumn::EndListeningIntersectedGroups( { ScFormulaCell* pFC = sc::formula_block::at(*it->data, aPos.second); ScFormulaCellGroupRef xGroup = pFC->GetCellGroup(); - if (xGroup && !pFC->IsSharedTop()) + if (xGroup) { - // End listening. - pFC->EndListeningTo(rCxt); + if (!pFC->IsSharedTop()) + // End listening. + pFC->EndListeningTo(rCxt); + if (pGroupPos) { // Record the position of the bottom cell of the group. -- cgit v1.2.3