mirror of
https://github.com/neovim/neovim.git
synced 2025-09-18 09:18:19 +00:00
event: No longer process K_EVENT automatically
Two new functions, `event_enable_deferred()`/`event_disable_deferred()` have to be called by code that is capable of handling asynchronicity. User-dialog states like "press ENTER to continue" or the swap file confirmation no longer will generate K_EVENT.
This commit is contained in:
@@ -593,9 +593,17 @@ edit (
|
||||
* Get a character for Insert mode. Ignore K_IGNORE.
|
||||
*/
|
||||
lastc = c; /* remember previous char for CTRL-D */
|
||||
event_enable_deferred();
|
||||
do {
|
||||
c = safe_vgetc();
|
||||
} while (c == K_IGNORE);
|
||||
event_disable_deferred();
|
||||
|
||||
if (c == K_EVENT) {
|
||||
c = lastc;
|
||||
event_process();
|
||||
continue;
|
||||
}
|
||||
|
||||
/* Don't want K_CURSORHOLD for the second key, e.g., after CTRL-V. */
|
||||
did_cursorhold = TRUE;
|
||||
@@ -943,10 +951,6 @@ doESCkey:
|
||||
did_cursorhold = TRUE;
|
||||
break;
|
||||
|
||||
case K_EVENT:
|
||||
event_process();
|
||||
break;
|
||||
|
||||
case K_HOME: /* <Home> */
|
||||
case K_KHOME:
|
||||
case K_S_HOME:
|
||||
|
Reference in New Issue
Block a user