diff options
| author | Richard M. Stallman | 1996-02-10 08:48:48 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 1996-02-10 08:48:48 +0000 |
| commit | ba8dfba86d49b44c07256c8034a8f19104033b4b (patch) | |
| tree | 2edd02b27f8bd53b708be43830eae860390b968b /src | |
| parent | 37962e6044a290c03c3510f75e9bf322a213c969 (diff) | |
| download | emacs-ba8dfba86d49b44c07256c8034a8f19104033b4b.tar.gz emacs-ba8dfba86d49b44c07256c8034a8f19104033b4b.zip | |
(read_char, timer_check): Call any_kboard_state
after calling Fcommand_execute, if was previously in that state.
Diffstat (limited to 'src')
| -rw-r--r-- | src/keyboard.c | 14 |
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) | |||
| 2057 | 2057 | ||
| 2058 | if (!NILP (tem)) | 2058 | if (!NILP (tem)) |
| 2059 | { | 2059 | { |
| 2060 | int was_locked = single_kboard; | ||
| 2061 | |||
| 2060 | last_input_char = c; | 2062 | last_input_char = c; |
| 2061 | Fcommand_execute (tem, Qnil, Fvector (1, &last_input_char)); | 2063 | Fcommand_execute (tem, Qnil, Fvector (1, &last_input_char)); |
| 2064 | |||
| 2065 | /* Resume allowing input from any kboard, if that was true before. */ | ||
| 2066 | if (!was_locked) | ||
| 2067 | any_kboard_state (); | ||
| 2068 | |||
| 2062 | goto retry; | 2069 | goto retry; |
| 2063 | } | 2070 | } |
| 2064 | 2071 | ||
| @@ -2931,11 +2938,18 @@ timer_check (do_it_now) | |||
| 2931 | if (do_it_now) | 2938 | if (do_it_now) |
| 2932 | { | 2939 | { |
| 2933 | Lisp_Object tem, event; | 2940 | Lisp_Object tem, event; |
| 2941 | int was_locked = single_kboard; | ||
| 2942 | |||
| 2934 | tem = get_keymap_1 (Vspecial_event_map, 0, 0); | 2943 | tem = get_keymap_1 (Vspecial_event_map, 0, 0); |
| 2935 | tem = get_keyelt (access_keymap (tem, Qtimer_event, 0, 0), | 2944 | tem = get_keyelt (access_keymap (tem, Qtimer_event, 0, 0), |
| 2936 | 1); | 2945 | 1); |
| 2937 | event = Fcons (Qtimer_event, Fcons (timer, Qnil)); | 2946 | event = Fcons (Qtimer_event, Fcons (timer, Qnil)); |
| 2938 | Fcommand_execute (tem, Qnil, Fvector (1, &event)); | 2947 | Fcommand_execute (tem, Qnil, Fvector (1, &event)); |
| 2948 | |||
| 2949 | /* Resume allowing input from any kboard, if that was true before. */ | ||
| 2950 | if (!was_locked) | ||
| 2951 | any_kboard_state (); | ||
| 2952 | |||
| 2939 | /* Since we have handled the event, | 2953 | /* Since we have handled the event, |
| 2940 | we don't need to tell the caller to wake up and do it. */ | 2954 | we don't need to tell the caller to wake up and do it. */ |
| 2941 | } | 2955 | } |