From 1c6eea89b46f874d39f5f18433086f05e6e48a8c Mon Sep 17 00:00:00 2001 From: Vincent van Ravesteijn Date: Tue, 7 Jul 2009 08:23:31 +0000 Subject: [PATCH] Fix previous commit for macros with arguments, again. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30398 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/mathed/InsetMathNest.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/mathed/InsetMathNest.cpp b/src/mathed/InsetMathNest.cpp index c66a3857f9..413d32efde 100644 --- a/src/mathed/InsetMathNest.cpp +++ b/src/mathed/InsetMathNest.cpp @@ -1862,7 +1862,8 @@ bool InsetMathNest::cursorMathForward(Cursor & cur) if (cur.pos() != cur.lastpos() && cur.openable(cur.nextAtom())) { cur.pushBackward(*cur.nextAtom().nucleus()); cur.inset().idxFirst(cur); - if (cur.inset().asInsetMath()->asMacro()) + MathMacro const * macro = cur.inset().asInsetMath()->asMacro(); + if (macro && macro->displayMode() == MathMacro::DISPLAY_UNFOLDED) // editing macros is only possible at lastpos cur.pos() = cur.lastpos(); return true; @@ -1888,9 +1889,11 @@ bool InsetMathNest::cursorMathBackward(Cursor & cur) } MathMacro const * macro = cur.inset().asInsetMath()->asMacro(); int s = cur.depth() - 2; - if (macro && s >= 0 && cur[s].inset().asInsetMath()) + if (macro && macro->displayMode() == MathMacro::DISPLAY_UNFOLDED + && s >= 0 && cur[s].inset().asInsetMath()) // editing macros is only possible at lastpos return cur.popBackward(); + if (cur.posBackward() || idxBackward(cur)) return true; // try to pop backwards --- but don't pop out of math! leave that to -- 2.39.2