Mercurial > vim
comparison src/getchar.c @ 22442:73be82f278c0 v8.2.1769
patch 8.2.1769: popup filter interferes with using :normal to move the cursor
Commit: https://github.com/vim/vim/commit/4934ad0e448bfa03ba19c7c5b411c457a9910442
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon Sep 28 22:29:58 2020 +0200
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.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Mon, 28 Sep 2020 22:45:05 +0200 |
parents | 00f2eebe74d9 |
children | 8e7cbf73c3a0 |
comparison
equal
deleted
inserted
replaced
22441:a3bb84cd0f59 | 22442:73be82f278c0 |
---|---|
1886 bevalexpr_due_set = FALSE; | 1886 bevalexpr_due_set = FALSE; |
1887 ui_remove_balloon(); | 1887 ui_remove_balloon(); |
1888 } | 1888 } |
1889 #endif | 1889 #endif |
1890 #ifdef FEAT_PROP_POPUP | 1890 #ifdef FEAT_PROP_POPUP |
1891 if (!ex_normal_busy_done && popup_do_filter(c)) | 1891 // Only filter keys that do not come from ":normal". Keys from feedkeys() |
1892 // are filtered. | |
1893 if ((!ex_normal_busy || in_feedkeys) && popup_do_filter(c)) | |
1892 { | 1894 { |
1893 if (c == Ctrl_C) | 1895 if (c == Ctrl_C) |
1894 got_int = FALSE; // avoid looping | 1896 got_int = FALSE; // avoid looping |
1895 c = K_IGNORE; | 1897 c = K_IGNORE; |
1896 } | 1898 } |
3166 if (typebuf.tb_len > 0) | 3168 if (typebuf.tb_len > 0) |
3167 { | 3169 { |
3168 timedout = TRUE; | 3170 timedout = TRUE; |
3169 continue; | 3171 continue; |
3170 } | 3172 } |
3171 #ifdef FEAT_PROP_POPUP | |
3172 ex_normal_busy_done = TRUE; | |
3173 #endif | |
3174 | 3173 |
3175 // When 'insertmode' is set, ESC just beeps in Insert | 3174 // When 'insertmode' is set, ESC just beeps in Insert |
3176 // mode. Use CTRL-L to make edit() return. | 3175 // mode. Use CTRL-L to make edit() return. |
3177 // For the command line only CTRL-C always breaks it. | 3176 // For the command line only CTRL-C always breaks it. |
3178 // For the cmdline window: Alternate between ESC and | 3177 // For the cmdline window: Alternate between ESC and |