diff --git a/src/mathed/InsetMathNest.cpp b/src/mathed/InsetMathNest.cpp index c44a843e82..e6c8f2eafc 100644 --- a/src/mathed/InsetMathNest.cpp +++ b/src/mathed/InsetMathNest.cpp @@ -808,7 +808,7 @@ void InsetMathNest::doDispatch(Cursor & cur, FuncRequest & cmd) 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, @@ -817,14 +817,9 @@ void InsetMathNest::doDispatch(Cursor & cur, FuncRequest & cmd) // 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