# HG changeset patch # User Christian Brabandt # Date 1496861103 -7200 # Node ID 6a06738f894861e121e68225124260a83af203a5 # Parent a7fa3a540af267f2488a1904321772b9dc3f5fb7 patch 8.0.0628: cursor disappears after silent mapping commit https://github.com/vim/vim/commit/f085f4266e07b36279c56d43fd0d73ed080046ae Author: Bram Moolenaar Date: Wed Jun 7 20:39:47 2017 +0200 patch 8.0.0628: cursor disappears after silent mapping 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. diff --git a/src/getchar.c b/src/getchar.c --- a/src/getchar.c +++ b/src/getchar.c @@ -2583,7 +2583,7 @@ vgetorpeek(int advance) * get a character: 3. from the user - handle in Insert mode */ /* - * special case: if we get an in insert mode and there + * Special case: if we get an 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 . 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; diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -765,6 +765,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 628, +/**/ 627, /**/ 626,