mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-25 05:55:34 +00:00
Fix bug #8998: changed document setting is recoded twice as undo
The general trick to avoid this kind of problems is to use undo groups.
This commit is contained in:
parent
cc071bb34d
commit
5c0cf4cc51
@ -47,6 +47,7 @@
|
||||
#include "qt_helpers.h"
|
||||
#include "Spacing.h"
|
||||
#include "TextClass.h"
|
||||
#include "Undo.h"
|
||||
|
||||
#include "insets/InsetListingsParams.h"
|
||||
|
||||
@ -3328,6 +3329,11 @@ static void dispatch_bufferparams(Dialog const & dialog,
|
||||
|
||||
void GuiDocument::dispatchParams()
|
||||
{
|
||||
// We need a non-const buffer object.
|
||||
Buffer & buf = const_cast<BufferView *>(bufferview())->buffer();
|
||||
// There may be several undo records; group them (bug #8998)
|
||||
buf.undo().beginUndoGroup();
|
||||
|
||||
// This must come first so that a language change is correctly noticed
|
||||
setLanguage();
|
||||
|
||||
@ -3397,6 +3403,10 @@ void GuiDocument::dispatchParams()
|
||||
// If we used an LFUN, we would not need these two lines:
|
||||
BufferView * bv = const_cast<BufferView *>(bufferview());
|
||||
bv->processUpdateFlags(Update::Force | Update::FitCursor);
|
||||
|
||||
// Don't forget to close the group. Note that it is important
|
||||
// to check that there is no early return in the method.
|
||||
buf.undo().endUndoGroup();
|
||||
}
|
||||
|
||||
|
||||
|
@ -95,6 +95,8 @@ What's new
|
||||
|
||||
- Handle undo in `branch-add' function.
|
||||
|
||||
- Avoid multiple undo steps when changing document settings (bug 8998).
|
||||
|
||||
- Prevent recurrent pop-up of "missing module requirements" warning (bug 8864).
|
||||
|
||||
- Do not close shortcut box if we receive bad input (bug 8703).
|
||||
|
Loading…
Reference in New Issue
Block a user