case LFUN_FINISHED_BACKWARD:
case LFUN_FINISHED_FORWARD:
+ case LFUN_FINISHED_RIGHT:
+ case LFUN_FINISHED_LEFT:
//lyxerr << "action: " << cmd.action << endl;
InsetMathGrid::doDispatch(cur, cmd);
notifyCursorLeaves(cur);
}
if (cur.pos() > cur.lastpos())
cur.pos() = cur.lastpos();
+
+ // FIXME: find some more clever handling of the selection,
+ // i.e. preserve it.
+ cur.clearSelection();
//cur.dispatched(FINISHED);
break;
}
switch (cmd.action) {
case LFUN_FINISHED_BACKWARD:
case LFUN_FINISHED_FORWARD:
+ case LFUN_FINISHED_RIGHT:
+ case LFUN_FINISHED_LEFT:
case LFUN_UP:
case LFUN_DOWN:
case LFUN_NEW_LINE:
}
-void InsetMathHull::edit(Cursor & cur, bool front)
+void InsetMathHull::edit(Cursor & cur, bool front, EntryDirection entry_from)
{
cur.push(*this);
- front ? idxFirst(cur) : idxLast(cur);
+ bool enter_front = (entry_from == Inset::ENTRY_DIRECTION_LEFT ||
+ (entry_from == Inset::ENTRY_DIRECTION_IGNORE && front));
+ enter_front ? idxFirst(cur) : idxLast(cur);
// The inset formula dimension is not necessarily the same as the
// one of the instant preview image, so we have to indicate to the
// BufferView that a metrics update is needed.