diff options
-rw-r--r-- | sc/inc/mtvelements.hxx | 2 | ||||
-rw-r--r-- | sc/source/core/data/column.cxx | 4 | ||||
-rw-r--r-- | sc/source/core/data/mtvelements.cxx | 5 |
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) |