diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2017-08-05 03:34:38 +0200 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2017-08-05 21:32:34 +0200 |
commit | a31482db4dcaa479b09e2683037fee3d6ee56408 (patch) | |
tree | c47a6572dba872e5fe053b9883e37aa9c59adcf9 /src/nvim/terminal.c | |
parent | c6954437277175c9e2b8eb7e7e753314725aef8b (diff) | |
download | rneovim-a31482db4dcaa479b09e2683037fee3d6ee56408.tar.gz rneovim-a31482db4dcaa479b09e2683037fee3d6ee56408.tar.bz2 rneovim-a31482db4dcaa479b09e2683037fee3d6ee56408.zip |
terminal: block redraw during c_CTRL-D
Unlike the normal wildmenu, the CTRL-D wild-list is not restored by
statusline redraw. (Semantics: ^D is controlled by 'wildoptions' option,
so it's in the "wild..." family.)
TODO: externalize the c_CTRL-D wild-list.
Diffstat (limited to 'src/nvim/terminal.c')
-rw-r--r-- | src/nvim/terminal.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/nvim/terminal.c b/src/nvim/terminal.c index 099f49f09b..deec930ebd 100644 --- a/src/nvim/terminal.c +++ b/src/nvim/terminal.c @@ -43,6 +43,7 @@ #include <vterm.h> +#include "nvim/log.h" #include "nvim/vim.h" #include "nvim/terminal.h" #include "nvim/message.h" @@ -1010,7 +1011,10 @@ static void refresh_terminal(Terminal *term) // Calls refresh_terminal() on all invalidated_terminals. static void refresh_timer_cb(TimeWatcher *watcher, void *data) { - if (exiting) { // Cannot redraw (requires event loop) during teardown/exit. + if (exiting // Cannot redraw (requires event loop) during teardown/exit. + // WM_LIST (^D) is not redrawn, unlike the normal wildmenu. So we must + // skip redraws to keep it visible. + || wild_menu_showing == WM_LIST) { goto end; } Terminal *term; |