iOS: Keep undo/redo widgets enabled on the undo shortcut bar after undo
Having two undo/redo operations on the rebuilt undo stack always enables the undo/redo widgets on the shorcut bar. This might be more desirable than the current behavior that only allows one undo from the shortcut bar. Fixes: QTBUG-63393 Change-Id: I2c99f27895def47b58534035461ceb7b4e5c3057 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> (cherry picked from commit 3b155973c494e847b821f0b5675a061f4e424a6c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
975a059a3e
commit
0eaf920983
@ -514,14 +514,22 @@
|
||||
// from within a undo callback.
|
||||
NSUndoManager *undoMgr = self.undoManager;
|
||||
[undoMgr removeAllActions];
|
||||
|
||||
[undoMgr beginUndoGrouping];
|
||||
[undoMgr registerUndoWithTarget:self selector:@selector(undo) object:nil];
|
||||
[undoMgr endUndoGrouping];
|
||||
[undoMgr beginUndoGrouping];
|
||||
[undoMgr registerUndoWithTarget:self selector:@selector(undo) object:nil];
|
||||
[undoMgr endUndoGrouping];
|
||||
|
||||
// Schedule an operation that we immediately pop off to be able to schedule a redo
|
||||
// Schedule operations that we immediately pop off to be able to schedule redos
|
||||
[undoMgr beginUndoGrouping];
|
||||
[undoMgr registerUndoWithTarget:self selector:@selector(registerRedo) object:nil];
|
||||
[undoMgr endUndoGrouping];
|
||||
[undoMgr beginUndoGrouping];
|
||||
[undoMgr registerUndoWithTarget:self selector:@selector(registerRedo) object:nil];
|
||||
[undoMgr endUndoGrouping];
|
||||
[undoMgr undo];
|
||||
[undoMgr undo];
|
||||
|
||||
// Note that, perhaps because of a bug in UIKit, the buttons on the shortcuts bar ends up
|
||||
@ -530,6 +538,11 @@
|
||||
// become disabled when there is nothing more to undo (Qt didn't change anything upon receiving
|
||||
// an undo request). This seems to be OK behavior, so we let it stay like that unless it shows
|
||||
// to cause problems.
|
||||
|
||||
// QTBUG-63393: Having two operations on the rebuilt undo stack keeps the undo/redo widgets
|
||||
// always enabled on the shortcut bar. This workaround was found by experimenting with
|
||||
// removing the removeAllActions call, and is related to the unknown internal implementation
|
||||
// details of how the shortcut bar updates the dimming of its buttons.
|
||||
});
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user