aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/normal.c
diff options
context:
space:
mode:
authorThiago de Arruda <tpadilha84@gmail.com>2014-11-21 15:34:18 -0300
committerThiago de Arruda <tpadilha84@gmail.com>2014-11-21 15:41:02 -0300
commitf09a33bbc131138f67aa13752559ade2d4e577c2 (patch)
treed204eca11f8ea4fa128016f68a1bc0f8af62ff18 /src/nvim/normal.c
parent230c935e73c0eb8359b18f0da9ce2238cd7830bc (diff)
downloadrneovim-f09a33bbc131138f67aa13752559ade2d4e577c2.tar.gz
rneovim-f09a33bbc131138f67aa13752559ade2d4e577c2.tar.bz2
rneovim-f09a33bbc131138f67aa13752559ade2d4e577c2.zip
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.
Diffstat (limited to 'src/nvim/normal.c')
-rw-r--r--src/nvim/normal.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/nvim/normal.c b/src/nvim/normal.c
index 29070ff188..f58e044c2c 100644
--- a/src/nvim/normal.c
+++ b/src/nvim/normal.c
@@ -312,7 +312,6 @@ static const struct nv_cmd {
{K_F8, farsi_fkey, 0, 0},
{K_F9, farsi_fkey, 0, 0},
{K_CURSORHOLD, nv_cursorhold, NV_KEEPREG, 0},
- {K_EVENT, nv_event, NV_KEEPREG, 0},
};
/* Number of commands in nv_cmds[]. */
@@ -483,7 +482,15 @@ normal_cmd (
/*
* Get the command character from the user.
*/
+ event_enable_deferred();
c = safe_vgetc();
+ event_disable_deferred();
+
+ if (c == K_EVENT) {
+ event_process();
+ return;
+ }
+
LANGMAP_ADJUST(c, true);
/*
@@ -7373,8 +7380,3 @@ static void nv_cursorhold(cmdarg_T *cap)
did_cursorhold = true;
cap->retval |= CA_COMMAND_BUSY; /* don't call edit() now */
}
-
-static void nv_event(cmdarg_T *cap)
-{
- event_process();
-}