case LFUN_MARK_ON:
cur.clearSelection();
- cur.mark() = true;
+ cur.setMark(true);
cur.resetAnchor();
cur.message(from_utf8(N_("Mark on")));
break;
case LFUN_MARK_TOGGLE:
cur.clearSelection();
if (cur.mark()) {
- cur.mark() = false;
+ cur.setMark(false);
cur.message(from_utf8(N_("Mark removed")));
} else {
- cur.mark() = true;
+ cur.setMark(true);
cur.message(from_utf8(N_("Mark set")));
}
cur.resetAnchor();
case LFUN_GRAPHICS_GROUPS_UNIFY: {
if (cmd.argument().empty())
break;
- //view()->cursor().recordUndoFullDocument(); let inset-apply do that job
graphics::unifyGraphicsGroups(cur.buffer(), to_utf8(cmd.argument()));
processUpdateFlags(Update::Force | Update::FitCursor);
break;
case LFUN_NOTES_MUTATE: {
if (cmd.argument().empty())
break;
- cur.recordUndoFullDocument();
if (mutateNotes(cur, cmd.getArg(0), cmd.getArg(1))) {
processUpdateFlags(Update::Force);
Cursor old = cursor();
Cursor cur(*this);
cur.push(buffer_.inset());
- cur.selection() = d->cursor_.selection();
+ cur.setSelection(d->cursor_.selection());
// Either the inset under the cursor or the
// surrounding Text will handle this event.
// Put anchor at the same position.
cur.resetAnchor();
+ cur.beginUndoGroup();
+
// Try to dispatch to an non-editable inset near this position
// via the temp cursor. If the inset wishes to change the real
// cursor it has to do so explicitly by using
if (!inset || !cur.result().dispatched())
cur.dispatch(cmd);
+ cur.endUndoGroup();
+
// Notify left insets
if (cur != old) {
old.fixIfBroken();
dit[i].inset().edit(d->cursor_, true);
d->cursor_.setCursor(dit);
- d->cursor_.selection() = false;
+ d->cursor_.setSelection(false);
}