From: Bram Moolenaar Date: Wed, 7 Jun 2017 18:39:47 +0000 (+0200) Subject: patch 8.0.0628: cursor disappears after silent mapping X-Git-Tag: v8.0.0628 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f085f4266e07b36279c56d43fd0d73ed080046ae;p=vim 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 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 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 index 7a9b21c5d..4b98f4457 100644 --- a/src/version.c +++ b/src/version.c @@ -764,6 +764,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 628, /**/ 627, /**/