[Libreoffice-commits] core.git: Branch 'libreoffice-5-1' - sc/source
Eike Rathke
erack at redhat.com
Tue Mar 1 11:37:08 UTC 2016
sc/source/core/data/document.cxx | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
New commits:
commit 0a5d00507d08179d2511de0b5152e17a238f4a2d
Author: Eike Rathke <erack at 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 <ci at libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
Tested-by: Caolán McNamara <caolanm at 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);
+ }
+ }
+ }
}
}
More information about the Libreoffice-commits
mailing list