sc/source/core/data/document.cxx | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+)
New commits: commit 0a5d00507d08179d2511de0b5152e17a238f4a2d Author: Eike Rathke <er...@redhat.com> Date: Mon Feb 29 17:54:50 2016 +0100 fix the "group not recalculated after delete" second part of tdf#97897 If a formula cell group was split during deletion and the group also listened into the range where a cell was deleted, the group wasn't notified of the deletion. Change-Id: I858f5d4c0b647636611133fc32f3df7fbdaf7288 (cherry picked from commit 164419bfe6270015ccf94183c0b6273da7730391) Reviewed-on: https://gerrit.libreoffice.org/22783 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx index 5225443..074f5b7 100644 --- a/sc/source/core/data/document.cxx +++ b/sc/source/core/data/document.cxx @@ -1817,6 +1817,24 @@ void ScDocument::DeleteArea( // Re-start listeners on those top bottom groups that have been split. SetNeedsListeningGroups(aGroupPos); StartNeededListeners(); + + // If formula groups were split their listeners were destroyed and may + // need to be notified now that they're restored, ScTable::DeleteArea() + // couldn't do that. + if (!aGroupPos.empty()) + { + ScRange aRange(nCol1, nRow1, 0, nCol2, nRow2, 0); + for (SCTAB i = 0; i < static_cast<SCTAB>(maTabs.size()); i++) + { + if (rMark.GetTableSelect(i)) + { + aRange.aStart.SetTab(i); + aRange.aEnd.SetTab(i); + + SetDirty( aRange, true); + } + } + } } }
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits