Fix bug #5923: Resume macromode.

When the user wants to resume a macro, delete the current one and insert a new one, which is not yet finalized.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29687 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Vincent van Ravesteijn 2009-05-15 22:04:41 +00:00
parent 7fc21bf766
commit 193b36e71f

View File

@ -1568,6 +1568,19 @@ bool InsetMathNest::interpretChar(Cursor & cur, char_type const c)
return true;
}
if (cur.pos() > 0) {
MathMacro const * macro = cur.inset().asInsetMath()->asMacro();
if (macro) {
// resume macro_mode
docstring const & s = macro->name();
cur.leaveInset(*macro);
cur.plainErase();
docstring safe = grabAndEraseSelection(cur);
cur.insert(MathAtom(new InsetMathUnknown("\\" + s + c, safe, false)));
return true;
}
}
selClearOrDel(cur);
if (c == '\n') {