aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPo Lu2024-06-21 15:12:07 +0800
committerPo Lu2024-06-21 15:12:28 +0800
commit0ade6348f92283e4fd0bc209f100d8fe1bb87d2a (patch)
treebf8f3ef6d54b2d062d2383d1f64530ea6125bc7f /src
parent8218aa14ed5fa2057695471f7b80e874d51bff39 (diff)
downloademacs-0ade6348f92283e4fd0bc209f100d8fe1bb87d2a.tar.gz
emacs-0ade6348f92283e4fd0bc209f100d8fe1bb87d2a.zip
Fix execution of tool-bar commands read within minibuffer-error-handler
* src/keyboard.c (read_char): Arrange that the original event be recorded when a posn is promoted to a prefix key and an END_TIME is suppressing additions to this_command_keys.
Diffstat (limited to 'src')
-rw-r--r--src/keyboard.c19
1 files changed, 17 insertions, 2 deletions
diff --git a/src/keyboard.c b/src/keyboard.c
index 3551a77a9c9..fb4d17ea066 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -3135,8 +3135,23 @@ read_char (int commandflag, Lisp_Object map,
3135 /* Change menu-bar to (menu-bar) as the event "position". */ 3135 /* Change menu-bar to (menu-bar) as the event "position". */
3136 POSN_SET_POSN (xevent_start (c), list1 (posn)); 3136 POSN_SET_POSN (xevent_start (c), list1 (posn));
3137 3137
3138 also_record = c; 3138 /* Should a command call `sit-for', or another command that
3139 Vunread_command_events = Fcons (c, Vunread_command_events); 3139 provides a timespec to Fread_event and co., the original
3140 event will not subsequently be entered into
3141 this_command_keys unless Qno_record be specified below.
3142
3143 The same is the case in a number of other scenarios where
3144 reread is true, but if so, event recording is to be
3145 suppressed anyway. */
3146
3147 if (end_time)
3148 Vunread_command_events = Fcons (Fcons (Qt, c),
3149 Vunread_command_events);
3150 else
3151 {
3152 also_record = c;
3153 Vunread_command_events = Fcons (c, Vunread_command_events);
3154 }
3140 c = posn; 3155 c = posn;
3141 } 3156 }
3142 } 3157 }