BufferView * bv = current_view_->currentBufferView();
LASSERT(bv, /**/);
+ // Avoid a screen redraw in the middle of a dispatch operation just
+ // because a warning or an error was displayed.
+ current_view_->setBusy(true);
+
// Let the current BufferView dispatch its own actions.
bv->dispatch(cmd, dr);
if (dr.dispatched())
bv->cursor().dispatch(cmd);
// notify insets we just left
+ // FIXME: move this code to Cursor::dispatch
if (bv->cursor() != old) {
+ old.beginUndoGroup();
old.fixIfBroken();
bool badcursor = notifyCursorLeavesOrEnters(old, bv->cursor());
- if (badcursor)
+ if (badcursor) {
bv->cursor().fixIfBroken();
+ bv->fixInlineCompletionPos();
+ }
+ old.endUndoGroup();
}
// update completion. We do it here and not in
}
dr = bv->cursor().result();
+
+ current_view_->setBusy(false);
}
// if we executed a mutating lfun, mark the buffer as dirty