summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sc/inc/mtvelements.hxx2
-rw-r--r--sc/source/core/data/column.cxx4
-rw-r--r--sc/source/core/data/mtvelements.cxx5
3 files changed, 11 insertions, 0 deletions
diff --git a/sc/inc/mtvelements.hxx b/sc/inc/mtvelements.hxx
index f13562d47fbd..2809b7a621c5 100644
--- a/sc/inc/mtvelements.hxx
+++ b/sc/inc/mtvelements.hxx
@@ -97,6 +97,8 @@ public:
void element_block_acquired(const mdds::mtv::base_element_block* block);
void element_block_released(const mdds::mtv::base_element_block* block);
+
+ void swap(CellStoreEvent& r);
};
/// Cell note container
diff --git a/sc/source/core/data/column.cxx b/sc/source/core/data/column.cxx
index 48a551462c60..3afcc2bce2ec 100644
--- a/sc/source/core/data/column.cxx
+++ b/sc/source/core/data/column.cxx
@@ -1895,6 +1895,10 @@ void ScColumn::SwapCol(ScColumn& rCol)
maCellTextAttrs.swap(rCol.maCellTextAttrs);
maCellNotes.swap(rCol.maCellNotes);
+ // Swap all CellStoreEvent mdds event_func related.
+ maCells.event_handler().swap( rCol.maCells.event_handler());
+ std::swap( mnBlkCountFormula, rCol.mnBlkCountFormula);
+
// notes update caption
UpdateNoteCaptions(0, MAXROW);
rCol.UpdateNoteCaptions(0, MAXROW);
diff --git a/sc/source/core/data/mtvelements.cxx b/sc/source/core/data/mtvelements.cxx
index e34010af54d8..199284cad878 100644
--- a/sc/source/core/data/mtvelements.cxx
+++ b/sc/source/core/data/mtvelements.cxx
@@ -54,6 +54,11 @@ void CellStoreEvent::element_block_released(const mdds::mtv::base_element_block*
}
}
+void CellStoreEvent::swap(CellStoreEvent& r)
+{
+ std::swap( mpCol, r.mpCol);
+}
+
ColumnBlockPositionSet::ColumnBlockPositionSet(ScDocument& rDoc) : mrDoc(rDoc) {}
ColumnBlockPosition* ColumnBlockPositionSet::getBlockPosition(SCTAB nTab, SCCOL nCol)