diff options
author | Ville Hakulinen <ville.hakulinen@gmail.com> | 2019-06-03 00:38:19 +0300 |
---|---|---|
committer | Björn Linse <bjorn.linse@gmail.com> | 2019-06-02 23:38:19 +0200 |
commit | 40218d118030d0104ede11ad2956ef150e9a7573 (patch) | |
tree | ab22d1c1de7436089de3c2d80a33bfef7260f804 /src | |
parent | 8a33cb32bac1632a98d13df7865faacadfc41391 (diff) | |
download | rneovim-40218d118030d0104ede11ad2956ef150e9a7573.tar.gz rneovim-40218d118030d0104ede11ad2956ef150e9a7573.tar.bz2 rneovim-40218d118030d0104ede11ad2956ef150e9a7573.zip |
Make sure msg_clear is sent after confirm message (#10065)
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/ex_getln.c | 7 | ||||
-rw-r--r-- | src/nvim/message.c | 23 | ||||
-rw-r--r-- | src/nvim/message.h | 2 | ||||
-rw-r--r-- | src/nvim/screen.c | 2 |
4 files changed, 20 insertions, 14 deletions
diff --git a/src/nvim/ex_getln.c b/src/nvim/ex_getln.c index 25e92128ef..ce46408872 100644 --- a/src/nvim/ex_getln.c +++ b/src/nvim/ex_getln.c @@ -505,12 +505,7 @@ static uint8_t *command_line_enter(int firstc, long count, int indent) if (ui_has(kUICmdline)) { ui_call_cmdline_hide(ccline.level); - if (msg_ext_is_visible()) { - msg_ext_did_cmdline = true; - if (must_redraw < VALID) { - must_redraw = VALID; - } - } + msg_ext_clear_later(); } cmdline_level--; diff --git a/src/nvim/message.c b/src/nvim/message.c index 882fce504b..a597fb4866 100644 --- a/src/nvim/message.c +++ b/src/nvim/message.c @@ -926,8 +926,9 @@ void ex_messages(void *const eap_p) */ void msg_end_prompt(void) { - need_wait_return = FALSE; - emsg_on_display = FALSE; + msg_ext_clear_later(); + need_wait_return = false; + emsg_on_display = false; cmdline_row = msg_row; msg_col = 0; msg_clr_eos(); @@ -2791,12 +2792,22 @@ void msg_ext_clear(bool force) msg_ext_keep_after_cmdline = false; } -void msg_ext_check_prompt(void) +void msg_ext_clear_later(void) +{ + if (msg_ext_is_visible()) { + msg_ext_need_clear = true; + if (must_redraw < VALID) { + must_redraw = VALID; + } + } +} + +void msg_ext_check_clear(void) { - // Redraw after cmdline is expected to clear messages. - if (msg_ext_did_cmdline) { + // Redraw after cmdline or prompt is expected to clear messages. + if (msg_ext_need_clear) { msg_ext_clear(true); - msg_ext_did_cmdline = false; + msg_ext_need_clear = false; } } diff --git a/src/nvim/message.h b/src/nvim/message.h index 7938fd91d3..914c10af43 100644 --- a/src/nvim/message.h +++ b/src/nvim/message.h @@ -88,7 +88,7 @@ extern MessageHistoryEntry *first_msg_hist; /// Last message extern MessageHistoryEntry *last_msg_hist; -EXTERN bool msg_ext_did_cmdline INIT(= false); +EXTERN bool msg_ext_need_clear INIT(= false); #ifdef INCLUDE_GENERATED_DECLARATIONS # include "message.h.generated.h" diff --git a/src/nvim/screen.c b/src/nvim/screen.c index a20c91845d..9439869b32 100644 --- a/src/nvim/screen.c +++ b/src/nvim/screen.c @@ -369,7 +369,7 @@ void update_screen(int type) ui_comp_set_screen_valid(false); } win_ui_flush_positions(); - msg_ext_check_prompt(); + msg_ext_check_clear(); /* reset cmdline_row now (may have been changed temporarily) */ compute_cmdrow(); |