mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-22 05:16:21 +00:00
Fix cursor position after redo
When document settings are modified, a command inset-forall Branch inset-toggle asign is run to open as needed all branches. At the end of the said loop, the cursor is reset to where it was. However, the cur_after undo element member is not set because it already had a value. To make this work as expected, it is necessary in LFUN_INSET_FORALL to reset the cursor before ending the undo group and to insert a dummy recordUndo call. Fixes bug #10097.
This commit is contained in:
parent
c47bfee231
commit
5aa342ed75
@ -1855,9 +1855,17 @@ void BufferView::dispatch(FuncRequest const & cmd, DispatchResult & dr)
|
||||
if (!cur.nextInset() || cur.nextInset() == ins)
|
||||
cur.forwardInset();
|
||||
}
|
||||
cur.endUndoGroup();
|
||||
cur = savecur;
|
||||
cur.fixIfBroken();
|
||||
/** This is a dummy undo record only to remember the cursor
|
||||
* that has just been set; this will be used on a redo action
|
||||
* (see ticket #10097)
|
||||
|
||||
* FIXME: a better fix would be to have a way to set the
|
||||
* cursor value directly, but I am not sure it is worth it.
|
||||
*/
|
||||
cur.recordUndo();
|
||||
cur.endUndoGroup();
|
||||
dr.screenUpdate(Update::Force);
|
||||
dr.forceBufferUpdate();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user