aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/ex_getln.c
diff options
context:
space:
mode:
authorBjörn Linse <bjorn.linse@gmail.com>2017-08-27 09:57:30 +0200
committerBjörn Linse <bjorn.linse@gmail.com>2017-10-26 20:29:10 +0200
commit91d8e26bc7471378b8005b8843182dc1af90d81a (patch)
tree5ac1e60e59c8fb7a0ffbe74e9476eafbd88947c4 /src/nvim/ex_getln.c
parentbed0a3a8428027af32602ccb169e81767c55e257 (diff)
downloadrneovim-91d8e26bc7471378b8005b8843182dc1af90d81a.tar.gz
rneovim-91d8e26bc7471378b8005b8843182dc1af90d81a.tar.bz2
rneovim-91d8e26bc7471378b8005b8843182dc1af90d81a.zip
ext_cmdline: interact with cmdline window
Diffstat (limited to 'src/nvim/ex_getln.c')
-rw-r--r--src/nvim/ex_getln.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/nvim/ex_getln.c b/src/nvim/ex_getln.c
index 933aea7b93..bcc8d598db 100644
--- a/src/nvim/ex_getln.c
+++ b/src/nvim/ex_getln.c
@@ -2810,7 +2810,10 @@ void cmdline_screen_cleared(void)
CmdlineInfo *prev_ccline = ccline.prev_ccline;
while (prev_level > 0 && prev_ccline) {
if (prev_ccline->level == prev_level) {
- ui_ext_cmdline_show(prev_ccline);
+ // don't redraw a cmdline already shown in the cmdline window
+ if (prev_level != cmdwin_level) {
+ ui_ext_cmdline_show(prev_ccline);
+ }
prev_level--;
}
prev_ccline = prev_ccline->prev_ccline;
@@ -5781,6 +5784,7 @@ static int ex_window(void)
return K_IGNORE;
}
cmdwin_type = get_cmdline_type();
+ cmdwin_level = ccline.level;
// Create empty command-line buffer.
buf_open_scratch(0, "[Command Line]");
@@ -5833,6 +5837,9 @@ static int ex_window(void)
curwin->w_cursor.col = ccline.cmdpos;
changed_line_abv_curs();
invalidate_botline();
+ if (ui_is_external(kUICmdline)) {
+ ui_call_cmdline_hide(ccline.level);
+ }
redraw_later(SOME_VALID);
// Save the command line info, can be used recursively.
@@ -5875,6 +5882,7 @@ static int ex_window(void)
// Restore the command line info.
restore_cmdline(&save_ccline);
cmdwin_type = 0;
+ cmdwin_level = 0;
exmode_active = save_exmode;