summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKohei Yoshida <kohei.yoshida@collabora.com>2014-05-22 20:56:04 -0400
committerKohei Yoshida <kohei.yoshida@collabora.com>2014-05-22 20:59:11 -0400
commitcb167ac784f9b16944da4494b65e56b2a5b66bb7 (patch)
treeb65559242cd59e634b8bd28eeb67b2632a76ee52
parentfa2751ea5ce9066002a250f06bf5d056f6e0b71b (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.cxx22
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 )