}
// Make undo possible
+ cur.beginUndoGroup();
cur.recordUndo();
// If completion is active, at least complete by one character
hidePopup(cur);
hideInline(cur);
updateVisibility(false, false);
+ cur.endUndoGroup();
return;
}
docstring nextchar = completion.substr(prefix.size(), 1);
- if (!cur.inset().insertCompletion(cur, nextchar, false))
+ if (!cur.inset().insertCompletion(cur, nextchar, false)) {
+ cur.endUndoGroup();
return;
+ }
updatePrefix(cur);
// try to complete as far as it is unique
// redraw if needed
if (cur.result().screenUpdate())
gui_->bufferView().processUpdateFlags(cur.result().screenUpdate());
+ cur.endUndoGroup();
}
{
Cursor cur = gui_->bufferView().cursor();
cur.screenUpdateFlags(Update::None);
-
+
+ cur.beginUndoGroup();
cur.recordUndo();
docstring prefix = cur.inset().completionPrefix(cur);
if (cur.result().screenUpdate())
gui_->bufferView().processUpdateFlags(cur.result().screenUpdate());
+ cur.endUndoGroup();
}