diff options
author | Vladimir Glazounov <vg@openoffice.org> | 2009-03-16 11:46:01 +0000 |
---|---|---|
committer | Vladimir Glazounov <vg@openoffice.org> | 2009-03-16 11:46:01 +0000 |
commit | 3fa6016cfe4ceff50f08f6a6599c96b3b32f2e8d (patch) | |
tree | 22dc176bb44f99c2e0bd23cc84be5be160b8b252 /sc/source | |
parent | CWS-TOOLING: integrate CWS chartranges_DEV300 (diff) | |
download | core-3fa6016cfe4ceff50f08f6a6599c96b3b32f2e8d.tar.gz core-3fa6016cfe4ceff50f08f6a6599c96b3b32f2e8d.zip |
CWS-TOOLING: integrate CWS calc31stopper_DEV300
2009-03-04 19:46:06 +0100 dr r268863 : #i99844# do not remove broadcaster from deleted cells before broadcasting the change
Diffstat (limited to 'sc/source')
-rw-r--r-- | sc/source/core/data/column3.cxx | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/sc/source/core/data/column3.cxx b/sc/source/core/data/column3.cxx index 3faf5f2415b8..793229116fe2 100644 --- a/sc/source/core/data/column3.cxx +++ b/sc/source/core/data/column3.cxx @@ -466,7 +466,8 @@ void ScColumn::DeleteRange( SCSIZE nStartIndex, SCSIZE nEndIndex, USHORT nDelFla { // do not rescue note if it has to be deleted according to passed flags ScPostIt* pNote = bDeleteNote ? 0 : pOldCell->ReleaseNote(); - SvtBroadcaster* pBC = pOldCell->ReleaseBroadcaster(); + // #i99844# do not release broadcaster from old cell, it still has to notify deleted content + SvtBroadcaster* pBC = pOldCell->GetBroadcaster(); if( pNote || pBC ) pNoteCell = new ScNoteCell( pNote, pBC ); } @@ -498,6 +499,8 @@ void ScColumn::DeleteRange( SCSIZE nStartIndex, SCSIZE nEndIndex, USHORT nDelFla aHint.GetAddress().SetRow( nOldRow ); aHint.SetCell( pOldCell ); pDocument->Broadcast( aHint ); + // #i99844# after broadcasting, old cell has to forget the broadcaster (owned by pNoteCell) + pOldCell->ReleaseBroadcaster(); pOldCell->Delete(); } } @@ -524,6 +527,8 @@ void ScColumn::DeleteRange( SCSIZE nStartIndex, SCSIZE nEndIndex, USHORT nDelFla aHint.SetAddress( (*aIt)->aPos ); aHint.SetCell( *aIt ); pDocument->Broadcast( aHint ); + // #i99844# after broadcasting, old cell has to forget the broadcaster (owned by replacement note cell) + (*aIt)->ReleaseBroadcaster(); (*aIt)->Delete(); } } |