eventloop: K_EVENT should not finish operator

normal_finish_command() and normal_prepare() assume that any pending
operator needs to be finished after any subsequent key.

Set `finish_op = false` in nv_event() to indicate that the pending
operator shouldn't be finished in normal_execute().

This is how nv_visual() indicates that 'v' or 'V' in operator-pending
mode should not finish the current pending operator.

fixes #5398
fixes #6166 (partially; mappings are still interrupted)
This commit is contained in:
Matthew Malcomson
2017-09-02 14:12:32 +01:00
committed by Justin M. Keyes
parent fec6ca7511
commit 541dde36e3
2 changed files with 60 additions and 3 deletions

View File

@@ -7958,6 +7958,7 @@ static void nv_event(cmdarg_T *cap)
may_garbage_collect = false;
multiqueue_process_events(main_loop.events);
cap->retval |= CA_COMMAND_BUSY; // don't call edit() now
finish_op = false;
}
/// Trigger FocusGained event.