From 4934ad0e448bfa03ba19c7c5b411c457a9910442 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Mon, 28 Sep 2020 22:29:58 +0200 Subject: patch 8.2.1769: popup filter interferes with using :normal to move the cursor Problem: A popup filter interferes with using :normal to move the cursor in a popup. Solution: Do not invoke the filter when ex_normal_busy is set. --- src/getchar.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'src/getchar.c') diff --git a/src/getchar.c b/src/getchar.c index 2c7bd1fd2e..6e469f49b5 100644 --- a/src/getchar.c +++ b/src/getchar.c @@ -1888,7 +1888,9 @@ vgetc(void) } #endif #ifdef FEAT_PROP_POPUP - if (!ex_normal_busy_done && popup_do_filter(c)) + // Only filter keys that do not come from ":normal". Keys from feedkeys() + // are filtered. + if ((!ex_normal_busy || in_feedkeys) && popup_do_filter(c)) { if (c == Ctrl_C) got_int = FALSE; // avoid looping @@ -3168,9 +3170,6 @@ vgetorpeek(int advance) timedout = TRUE; continue; } -#ifdef FEAT_PROP_POPUP - ex_normal_busy_done = TRUE; -#endif // When 'insertmode' is set, ESC just beeps in Insert // mode. Use CTRL-L to make edit() return. -- cgit v1.2.3