Only allow the cursor to be in lastpos for macros as editing in macro-mode is only possible at lastpos.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30396 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Vincent van Ravesteijn 2009-07-07 08:16:21 +00:00
parent ebe9b42279
commit ebe7913a47

View 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;