aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/terminal.c
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2017-08-05 03:34:38 +0200
committerJustin M. Keyes <justinkz@gmail.com>2017-08-05 21:32:34 +0200
commita31482db4dcaa479b09e2683037fee3d6ee56408 (patch)
treec47a6572dba872e5fe053b9883e37aa9c59adcf9 /src/nvim/terminal.c
parentc6954437277175c9e2b8eb7e7e753314725aef8b (diff)
downloadrneovim-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.c6
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;