sc/source/core/data/table3.cxx | 15 +++++++++++++++ 1 file changed, 15 insertions(+)
New commits: commit f4c179ea7f69e87e55a416c1588ee0aad7c146c0 Author: Kohei Yoshida <kohei.yosh...@collabora.com> Date: Mon Oct 27 08:52:38 2014 -0700 fdo#85215: Ensure that formula broadcasting works after sort. When the reference update on sort is turned off. Change-Id: I547dd1525a638dd447fe331e22583af4a7947308 (cherry picked from commit 1eb82c78a223d9a0b2bb5c3f5c129c1ee8bdf303) Reviewed-on: https://gerrit.libreoffice.org/12113 Reviewed-by: Michael Meeks <michael.me...@collabora.com> Tested-by: Michael Meeks <michael.me...@collabora.com> diff --git a/sc/source/core/data/table3.cxx b/sc/source/core/data/table3.cxx index 589a9b1..c36b4cd 100644 --- a/sc/source/core/data/table3.cxx +++ b/sc/source/core/data/table3.cxx @@ -802,6 +802,15 @@ void ScTable::SortReorderByRow( ScSortInfoArray::RowsType* pRows = pArray->GetDataRows(); assert(pRows); // In sort-by-row mode we must have data rows already populated. + if (!pArray->IsUpdateRefs()) + { + // When the update ref mode is disabled, we need to detach all formula + // cells in the sorted range before reordering, and re-start them + // afterward. + sc::EndListeningContext aCxt(*pDocument); + DetachFormulaCells(aCxt, nCol1, nRow1, nCol2, nRow2); + } + // Split formula groups at the sort range boundaries (if applicable). std::vector<SCROW> aRowBounds; aRowBounds.reserve(2); @@ -1077,6 +1086,12 @@ void ScTable::SortReorderByRow( // Re-group columns in the sorted range too. for (SCCOL i = nCol1; i <= nCol2; ++i) aCol[i].RegroupFormulaCells(); + + if (!pArray->IsUpdateRefs()) + { + sc::StartListeningContext aCxt(*pDocument); + AttachFormulaCells(aCxt, nCol1, nRow1, nCol2, nRow2); + } } short ScTable::CompareCell( _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits