diff options
-rw-r--r-- | sc/inc/column.hxx | 1 | ||||
-rw-r--r-- | sc/source/core/data/column3.cxx | 10 | ||||
-rw-r--r-- | sc/source/core/data/table5.cxx | 4 |
3 files changed, 15 insertions, 0 deletions
diff --git a/sc/inc/column.hxx b/sc/inc/column.hxx index 564b6ff8114a..e163a1e295a1 100644 --- a/sc/inc/column.hxx +++ b/sc/inc/column.hxx @@ -588,6 +588,7 @@ public: void Broadcast( SCROW nRow ); void BroadcastCells( const std::vector<SCROW>& rRows, SfxHintId nHint ); + void BroadcastRows( SCROW nStartRow, SCROW nEndRow ); // cell notes ScPostIt* GetCellNote( SCROW nRow ); diff --git a/sc/source/core/data/column3.cxx b/sc/source/core/data/column3.cxx index c0a6e2923d38..97759267945d 100644 --- a/sc/source/core/data/column3.cxx +++ b/sc/source/core/data/column3.cxx @@ -88,6 +88,16 @@ void ScColumn::BroadcastCells( const std::vector<SCROW>& rRows, SfxHintId nHint } } +void ScColumn::BroadcastRows( SCROW nStartRow, SCROW nEndRow ) +{ + sc::SingleColumnSpanSet aSpanSet; + aSpanSet.scan(*this, nStartRow, nEndRow); + std::vector<SCROW> aRows; + aSpanSet.getRows(aRows); + BroadcastCells(aRows, SfxHintId::ScDataChanged); +} + + struct DirtyCellInterpreter { void operator() (size_t, ScFormulaCell* p) diff --git a/sc/source/core/data/table5.cxx b/sc/source/core/data/table5.cxx index d0d26d2855d9..9342a7401a06 100644 --- a/sc/source/core/data/table5.cxx +++ b/sc/source/core/data/table5.cxx @@ -593,6 +593,10 @@ bool ScTable::SetRowHidden(SCROW nStartRow, SCROW nEndRow, bool bHidden) { if (IsStreamValid()) SetStreamValid(false); + for (SCCOL i = 0; i < aCol.size(); i++) + { + aCol[i].BroadcastRows(nStartRow, nEndRow); + } } return bChanged; |