]> git.lyx.org Git - features.git/commitdiff
Fix bug #5540: Crash in MathAtom on Undo.
authorVincent van Ravesteijn <vfr@lyx.org>
Fri, 15 May 2009 21:51:43 +0000 (21:51 +0000)
committerVincent van Ravesteijn <vfr@lyx.org>
Fri, 15 May 2009 21:51:43 +0000 (21:51 +0000)
No undo steps are recorded for math-macros. Now, it is also not done when we resume to edit a macro.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29685 a592a061-630c-0410-9148-cb99ea01b6c8

src/mathed/InsetMathNest.cpp

index cff232b87c3f44225c48dae0d41a7fce84744f67..12a0e2bcbf6d38cefa0ab2d0e75345fcddd95dcd 100644 (file)
@@ -816,8 +816,14 @@ 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())
-                       cur.recordUndoSelection();
+               if (!cur.inMacroMode()) {
+                       MathMacro const * macro = 0;
+                       if (cur.pos() > 0 && cmd.argument() != "\\")
+                               macro = cur.inset().asInsetMath()->asMacro();
+                       
+                       if (!macro)
+                               cur.recordUndoSelection();
+               }
 
                // spacial handling of space. If we insert an inset
                // via macro mode, we want to put the cursor inside it