diff options
author | Kohei Yoshida <kohei.yoshida@collabora.com> | 2014-05-22 20:56:04 -0400 |
---|---|---|
committer | Kohei Yoshida <kohei.yoshida@collabora.com> | 2014-05-22 20:59:11 -0400 |
commit | cb167ac784f9b16944da4494b65e56b2a5b66bb7 (patch) | |
tree | b65559242cd59e634b8bd28eeb67b2632a76ee52 | |
parent | fa2751ea5ce9066002a250f06bf5d056f6e0b71b (diff) |
fdo#78903: Don't broadcast prematurely during cell deletion.
We need to wait until all the affected cells get marked dirty at the
end of the deletion process.
Change-Id: I49618fcc386ec2209f5f0267d50257ecb8dd21d1
-rw-r--r-- | sc/source/core/data/column3.cxx | 22 |
1 files changed, 0 insertions, 22 deletions
diff --git a/sc/source/core/data/column3.cxx b/sc/source/core/data/column3.cxx index 3d447d121289..2d54fd55b91d 100644 --- a/sc/source/core/data/column3.cxx +++ b/sc/source/core/data/column3.cxx @@ -169,11 +169,6 @@ public: maRows.push_back(i + nTopRow); } - void endFormulas() - { - mrDoc.EndListeningFormulaCells(maFormulaCells); - } - const std::vector<SCROW>& getNonEmptyRows() const { return maRows; @@ -266,12 +261,6 @@ void ScColumn::DeleteRow( SCROW nStartRow, SCSIZE nSize ) sc::AutoCalcSwitch aACSwitch(*pDocument, false); - // Parse all non-empty cells in the range to pick up their row positions, - // and end all formula cells. - DeleteRowsHandler aDeleteRowsFunc(*pDocument); - sc::ProcessFormula(itCell, maCells, nStartRow, nEndRow, aDeleteRowsFunc, aDeleteRowsFunc); - aDeleteRowsFunc.endFormulas(); - // Remove the cells. maCells.erase(nStartRow, nEndRow); maCells.resize(MAXROWCOUNT); @@ -285,22 +274,11 @@ void ScColumn::DeleteRow( SCROW nStartRow, SCSIZE nSize ) sc::SharedFormulaUtil::joinFormulaCellAbove(aPos); - // Single cell broadcasts on deleted cells. - BroadcastCells(aDeleteRowsFunc.getNonEmptyRows(), SC_HINT_DATACHANGED); - // Shift the text attribute array too (before the broadcast). maCellTextAttrs.erase(nStartRow, nEndRow); maCellTextAttrs.resize(MAXROWCOUNT); CellStorageModified(); - - if (!bShiftCells) - return; - - // Do area broadcast on the old non-empty cell ranges prior to the shift. - sc::SingleColumnSpanSet::SpansType aSpans; - aNonEmptySpans.getSpans(aSpans); - std::for_each(aSpans.begin(), aSpans.end(), RangeBroadcaster(*pDocument, nTab, nCol)); } sc::CellStoreType::iterator ScColumn::GetPositionToInsert( SCROW nRow ) |