LASSERT(&cur.inset() == this, return false);
if (nargs() == 0)
return false;
- cur.idx() = 0;
+ cur.idx() = firstIdx();
cur.pos() = 0;
return true;
}
LASSERT(&cur.inset() == this, return false);
if (nargs() == 0)
return false;
- cur.idx() = cur.lastidx();
+ cur.idx() = lastIdx();
cur.pos() = cur.lastpos();
return true;
}
break;
}
- case LFUN_UNICODE_INSERT: {
- if (cmd.argument().empty())
- break;
- // splits on whitespace
- vector<docstring> args =
- getVectorFromString(cmd.argument(), from_ascii(" "), false, true);
- for (auto const & arg : args) {
- if (!isHex(arg)) {
- LYXERR0("Not a hexstring: " << arg);
- continue;
- }
- char_type c = hexToInt(arg);
- if (c >= 32 && c < 0x10ffff) {
- FuncCode code = currentMode() == MATH_MODE ?
- LFUN_MATH_INSERT : LFUN_SELF_INSERT;
- lyx::dispatch(FuncRequest(code, docstring(1, c)));
- }
- }
- break;
- }
-
case LFUN_DIALOG_SHOW_NEW_INSET: {
docstring const & name = cmd.argument();
string data;
void InsetMathNest::edit(Cursor & cur, bool front, EntryDirection entry_from)
{
cur.push(*this);
- bool enter_front = (entry_from == Inset::ENTRY_DIRECTION_RIGHT ||
+ bool enter_front = (entry_from == Inset::ENTRY_DIRECTION_LEFT ||
(entry_from == Inset::ENTRY_DIRECTION_IGNORE && front));
- cur.idx() = enter_front ? 0 : cur.lastidx();
- cur.pos() = enter_front ? 0 : cur.lastpos();
+ enter_front ? idxFirst(cur) : idxLast(cur);
cur.resetAnchor();
//lyxerr << "InsetMathNest::edit, cur:\n" << cur << endl;
}
MathAtom const atom = cur.prevAtom();
if (atom->asNestInset() && atom->isActive()) {
cur.posBackward();
- cur.pushBackward(*cur.nextInset());
+ cur.nextInset()->edit(cur, true);
}
}
if (c == '{')