diff options
author | Justin Luth <jluth@mail.com> | 2024-07-19 19:32:39 -0400 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.com> | 2024-08-16 09:03:26 +0200 |
commit | 0a9da9e43c53406c867fe95cdd5c7192ce08bcb6 (patch) | |
tree | 6618f16045bfceb5728c9e71f0bec71c3c30cf24 /sd | |
parent | 74d910231c5591f5e497fc52f2a0132c8f41a271 (diff) |
tdf#161741 tdf#161705 undo: delay ClearRedo until Undo finishes
I know NOTHING about the intricacies of Undo/Redo.
However, this is my feeble attempt to add some sanity to it.
It should not be the responsibility of the caller
to know when they are allowed to call ClearRedo.
This patch reverts commit 0cd000bb83719982c1fd2265ea040c82af5bf98e
author Daniel Arato (NISZ) on Mon May 10 15:41:28 2021 +0200
tdf#141613 sw: avoid possible crash when undoing header creation
which was not a sufficient hack.
I hope this patch lays a better framework
to handle future similar issues.
vvv NAIVE OPTIMIST ALERT vvv
mbDoing was added with
commit 9cb53122e9e098bc8a6bf53c14b18415e369dd6d
Author: Frank Schoenheit on Fri Oct 22 15:00:39 2010 +0200
undoapi: more I/SfxUndoManager changes
in preparation of new Undo API features
and has been untouched since then AFAICS,
and there was never any mechanism to change mbDoing.
In other words, it has been sitting there doing NOTHING.
So, I am taking it over and using it how I imagine it was intended,
and how it is documented.
Change-Id: I7aa355cc6458ac8ba34ddb9ee73fc850dcbca702
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170793
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Diffstat (limited to 'sd')
-rw-r--r-- | sd/source/core/undo/undomanager.cxx | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sd/source/core/undo/undomanager.cxx b/sd/source/core/undo/undomanager.cxx index 672fe00e1fd0..462a2eb7b151 100644 --- a/sd/source/core/undo/undomanager.cxx +++ b/sd/source/core/undo/undomanager.cxx @@ -33,6 +33,7 @@ void UndoManager::EnterListAction(const OUString &rComment, const OUString& rRep ClearLinkedRedoActions(); SdrUndoManager::EnterListAction( rComment, rRepeatComment, nId, nViewShellId ); } + else assert(false); } void UndoManager::AddUndoAction( std::unique_ptr<SfxUndoAction> pAction, bool bTryMerg /* = sal_False */ ) @@ -42,6 +43,7 @@ void UndoManager::AddUndoAction( std::unique_ptr<SfxUndoAction> pAction, bool bT ClearLinkedRedoActions(); SdrUndoManager::AddUndoAction( std::move(pAction), bTryMerg ); } + else assert(false); } void UndoManager::SetLinkedUndoManager (SfxUndoManager* pLinkedUndoManager) |