cur.insert(arg);
break;
}
- // Don't record undo steps if we are in macro mode and
+ // Don't record undo steps if we are in macro mode and thus
// cmd.argument is the next character of the macro name.
// Otherwise we'll get an invalid cursor if we undo after
// the macro was finished and the macro is a known command,
// InsetMathFrac -> a pos value > 0 is invalid.
// A side effect is that an undo before the macro is finished
// undoes the complete macro, not only the last character.
- if (!cur.inMacroMode()) {
- MathMacro const * macro = 0;
- if (cur.pos() > 0 && cmd.argument() != "\\")
- macro = cur.inset().asInsetMath()->asMacro();
-
- if (!macro)
- cur.recordUndoSelection();
- }
+ // At the time we hit '\' we are not in macro mode, still.
+ if (!cur.inMacroMode())
+ cur.recordUndoSelection();
// spacial handling of space. If we insert an inset
// via macro mode, we want to put the cursor inside it