]> git.lyx.org Git - features.git/commitdiff
Only allow the cursor to be in lastpos for macros as editing in macro-mode is only...
authorVincent van Ravesteijn <vfr@lyx.org>
Tue, 7 Jul 2009 08:16:21 +0000 (08:16 +0000)
committerVincent van Ravesteijn <vfr@lyx.org>
Tue, 7 Jul 2009 08:16:21 +0000 (08:16 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30396 a592a061-630c-0410-9148-cb99ea01b6c8

src/mathed/InsetMathNest.cpp

index 13aa8d3382426c0232dbae13cd30be5c9c3e40b9..c66a3857f98a3fc36d1d61e2d6fc24bc7cb24cc2 100644 (file)
@@ -1862,6 +1862,9 @@ 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())
+                       // editing macros is only possible at lastpos
+                       cur.pos() = cur.lastpos();
                return true;
        }
        if (cur.posForward() || idxForward(cur))
@@ -1883,11 +1886,15 @@ bool InsetMathNest::cursorMathBackward(Cursor & cur)
                cur.inset().idxLast(cur);
                return true;
        }
+       MathMacro const * macro = cur.inset().asInsetMath()->asMacro();
+       int s = cur.depth() - 2;
+       if (macro && 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
        // the FINISH lfuns
-       int s = cur.depth() - 2;
        if (s >= 0 && cur[s].inset().asInsetMath())
                return cur.popBackward();
        return false;