summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>1996-02-10 08:48:48 +0000
committerRichard M. Stallman <rms@gnu.org>1996-02-10 08:48:48 +0000
commitc9807d950a2b30b89df8f20c6e7a589b87451340 (patch)
treedd5b175c58384adcd86de5a7239e8534015893fd
parent9296f4359915c71aef7274c2e8810905fa996e42 (diff)
downloademacs-c9807d950a2b30b89df8f20c6e7a589b87451340.tar.gz
(read_char, timer_check): Call any_kboard_state
after calling Fcommand_execute, if was previously in that state.
-rw-r--r--src/keyboard.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/keyboard.c b/src/keyboard.c
index 585561c4076..5126a4f2944 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -2057,8 +2057,15 @@ read_char (commandflag, nmaps, maps, prev_event, used_mouse_menu)
if (!NILP (tem))
{
+ int was_locked = single_kboard;
+
last_input_char = c;
Fcommand_execute (tem, Qnil, Fvector (1, &last_input_char));
+
+ /* Resume allowing input from any kboard, if that was true before. */
+ if (!was_locked)
+ any_kboard_state ();
+
goto retry;
}
@@ -2931,11 +2938,18 @@ timer_check (do_it_now)
if (do_it_now)
{
Lisp_Object tem, event;
+ int was_locked = single_kboard;
+
tem = get_keymap_1 (Vspecial_event_map, 0, 0);
tem = get_keyelt (access_keymap (tem, Qtimer_event, 0, 0),
1);
event = Fcons (Qtimer_event, Fcons (timer, Qnil));
Fcommand_execute (tem, Qnil, Fvector (1, &event));
+
+ /* Resume allowing input from any kboard, if that was true before. */
+ if (!was_locked)
+ any_kboard_state ();
+
/* Since we have handled the event,
we don't need to tell the caller to wake up and do it. */
}