sc/source/core/data/colorscale.cxx | 5 ++++- sc/source/core/data/conditio.cxx | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-)
New commits: commit 657eea01046c7f39ee8ca4545241372177385946 Author: Eike Rathke <er...@redhat.com> Date: Wed Jan 25 11:40:52 2017 +0100 Resolves: tdf#104675 ScConditionalFormat ranges needed to start listening Conditional format manager dialog holds a cloned list of ScConditionalFormat and sets that at the document on OK. The ranges of a format need to be set before ScFormatEntry/ScConditionEntry are added to start their listeners. Change-Id: I903553b1f6a8298838ee8753315a6ea263b29b08 diff --git a/sc/source/core/data/conditio.cxx b/sc/source/core/data/conditio.cxx index 0f8764b..6657dcf 100644 --- a/sc/source/core/data/conditio.cxx +++ b/sc/source/core/data/conditio.cxx @@ -1776,6 +1776,7 @@ ScConditionalFormat* ScConditionalFormat::Clone(ScDocument* pNewDoc) const pNewDoc = pDoc; ScConditionalFormat* pNew = new ScConditionalFormat(nKey, pNewDoc); + pNew->SetRange( maRanges ); // prerequisite for listeners for (CondFormatContainer::const_iterator itr = maEntries.begin(); itr != maEntries.end(); ++itr) { @@ -1783,7 +1784,6 @@ ScConditionalFormat* ScConditionalFormat::Clone(ScDocument* pNewDoc) const pNew->maEntries.push_back( std::unique_ptr<ScFormatEntry>(pNewEntry) ); pNewEntry->SetParent(pNew); } - pNew->SetRange( maRanges ); return pNew; } commit 81845445de26111eb0b7e30f45b3708389fd76cf Author: Eike Rathke <er...@redhat.com> Date: Tue Jan 24 21:23:22 2017 +0100 ScFormulaListener: do not start listening to clipboard or Undo docs Change-Id: Ic00e30eccc64cc85ee877572ef8df042899f45f5 diff --git a/sc/source/core/data/colorscale.cxx b/sc/source/core/data/colorscale.cxx index 2690be1..dbce784 100644 --- a/sc/source/core/data/colorscale.cxx +++ b/sc/source/core/data/colorscale.cxx @@ -36,7 +36,7 @@ ScFormulaListener::ScFormulaListener(ScDocument* pDoc): void ScFormulaListener::startListening(ScTokenArray* pArr, const ScRange& rRange) { - if (!pArr) + if (!pArr || mpDoc->IsClipOrUndo()) return; pArr->Reset(); @@ -123,6 +123,9 @@ private: void ScFormulaListener::stopListening() { + if (mpDoc->IsClipOrUndo()) + return; + std::for_each(maCells.begin(), maCells.end(), StopListeningCell(mpDoc, this)); } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits