summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sc/inc/chgtrack.hxx2
-rw-r--r--sc/source/core/tool/chgtrack.cxx7
-rw-r--r--sc/source/ui/docshell/docsh3.cxx2
3 files changed, 8 insertions, 3 deletions
diff --git a/sc/inc/chgtrack.hxx b/sc/inc/chgtrack.hxx
index cb56004520dd..54a6570c0f1d 100644
--- a/sc/inc/chgtrack.hxx
+++ b/sc/inc/chgtrack.hxx
@@ -1373,7 +1373,7 @@ public:
BOOL bAllFlat = FALSE ) const;
// Reject visible Action (und abhaengige)
- BOOL Reject( ScChangeAction* );
+ BOOL Reject( ScChangeAction*, bool bShared = false );
// Accept visible Action (und abhaengige)
SC_DLLPUBLIC BOOL Accept( ScChangeAction* );
diff --git a/sc/source/core/tool/chgtrack.cxx b/sc/source/core/tool/chgtrack.cxx
index 8d69b86770b1..5f1213e79b35 100644
--- a/sc/source/core/tool/chgtrack.cxx
+++ b/sc/source/core/tool/chgtrack.cxx
@@ -4851,8 +4851,13 @@ BOOL ScChangeTrack::RejectAll()
}
-BOOL ScChangeTrack::Reject( ScChangeAction* pAct )
+BOOL ScChangeTrack::Reject( ScChangeAction* pAct, bool bShared )
{
+ // #i100895# When collaboration changes are reversed, it must be possible
+ // to reject a deleted row above another deleted row.
+ if ( bShared && pAct->IsDeletedIn() )
+ pAct->RemoveAllDeletedIn();
+
if ( !pAct->IsRejectable() )
return FALSE;
diff --git a/sc/source/ui/docshell/docsh3.cxx b/sc/source/ui/docshell/docsh3.cxx
index 6e4940f96fd3..fcdfa8612a02 100644
--- a/sc/source/ui/docshell/docsh3.cxx
+++ b/sc/source/ui/docshell/docsh3.cxx
@@ -1292,7 +1292,7 @@ bool ScDocShell::MergeSharedDocument( ScDocShell* pSharedDocShell )
ScChangeAction* pAction = pThisTrack->GetLast();
while ( pAction && pAction->GetActionNumber() >= nStartShared )
{
- pThisTrack->Reject( pAction );
+ pThisTrack->Reject( pAction, true );
pAction = pAction->GetPrev();
}