diff options
Diffstat (limited to 'src/nvim/ex_docmd.c')
-rw-r--r-- | src/nvim/ex_docmd.c | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/src/nvim/ex_docmd.c b/src/nvim/ex_docmd.c index 5533c57adb..6ac7656a2f 100644 --- a/src/nvim/ex_docmd.c +++ b/src/nvim/ex_docmd.c @@ -208,8 +208,8 @@ void do_exmode(int improved) return; save_msg_scroll = msg_scroll; - ++RedrawingDisabled; /* don't redisplay the window */ - ++no_wait_return; /* don't wait for return */ + RedrawingDisabled++; // don't redisplay the window + no_wait_return++; // don't wait for return MSG(_("Entering Ex mode. Type \"visual\" to go to Normal mode.")); while (exmode_active) { @@ -253,10 +253,11 @@ void do_exmode(int improved) } } - --RedrawingDisabled; - --no_wait_return; - update_screen(CLEAR); - need_wait_return = FALSE; + RedrawingDisabled--; + no_wait_return--; + redraw_all_later(NOT_VALID); + update_screen(NOT_VALID); + need_wait_return = false; msg_scroll = save_msg_scroll; } @@ -6857,7 +6858,8 @@ static void ex_tabs(exarg_T *eap) static void ex_mode(exarg_T *eap) { if (*eap->arg == NUL) { - ui_refresh(); + must_redraw = CLEAR; + ex_redraw(eap); } else { EMSG(_(e_screenmode)); } @@ -6963,7 +6965,7 @@ do_exedit( no_wait_return = 0; need_wait_return = FALSE; msg_scroll = 0; - must_redraw = CLEAR; + redraw_all_later(NOT_VALID); normal_enter(false, true); @@ -7782,11 +7784,14 @@ static void ex_redraw(exarg_T *eap) p_lz = FALSE; validate_cursor(); update_topline(); - update_screen(eap->forceit ? CLEAR : - VIsual_active ? INVERTED : - 0); - if (need_maketitle) + if (eap->forceit) { + redraw_all_later(NOT_VALID); + } + update_screen(eap->forceit ? NOT_VALID + : VIsual_active ? INVERTED : 0); + if (need_maketitle) { maketitle(); + } RedrawingDisabled = r; p_lz = p; |