diff options
author | Bram Moolenaar <Bram@vim.org> | 2017-06-07 20:39:47 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2017-06-07 20:39:47 +0200 |
commit | f085f4266e07b36279c56d43fd0d73ed080046ae (patch) | |
tree | 63cb2b4bf7cf8a8da239c5f9fa232fa6c210569a /src/getchar.c | |
parent | add8dce38de65a0c64e8f54d6bdcadb45a8de2cf (diff) | |
download | vim-git-f085f4266e07b36279c56d43fd0d73ed080046ae.tar.gz |
patch 8.0.0628: cursor disappears after silent mappingv8.0.0628
Problem: Cursor disappears after silent mapping. (Ramel Eshed)
Solution: Do restore the cursor when it was changed, but don't change it in
the first place for a silent mapping.
Diffstat (limited to 'src/getchar.c')
-rw-r--r-- | src/getchar.c | 18 |
1 files changed, 5 insertions, 13 deletions
diff --git a/src/getchar.c b/src/getchar.c index ab3250aa3..44b246de6 100644 --- a/src/getchar.c +++ b/src/getchar.c @@ -2583,7 +2583,7 @@ vgetorpeek(int advance) * get a character: 3. from the user - handle <Esc> in Insert mode */ /* - * special case: if we get an <ESC> in insert mode and there + * Special case: if we get an <ESC> in insert mode and there * are no more characters at once, we pretend to go out of * insert mode. This prevents the one second delay after * typing an <ESC>. If we get something after all, we may @@ -2617,8 +2617,8 @@ vgetorpeek(int advance) mode_deleted = TRUE; } #ifdef FEAT_GUI - /* may show different cursor shape */ - if (gui.in_use) + /* may show a different cursor shape */ + if (gui.in_use && State != NORMAL && !cmd_silent) { int save_State; @@ -2913,16 +2913,8 @@ vgetorpeek(int advance) } #ifdef FEAT_GUI /* may unshow different cursor shape */ - if (gui.in_use) - { - if (cmd_silent) - gui_dont_update_cursor(TRUE); - else - gui_can_update_cursor(); - - if (shape_changed) - gui_update_cursor(TRUE, FALSE); - } + if (gui.in_use && shape_changed) + gui_update_cursor(TRUE, FALSE); #endif --vgetc_busy; |