diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/keyboard.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/keyboard.c b/src/keyboard.c index ffd36acb335..f5ca087227d 100644 --- a/src/keyboard.c +++ b/src/keyboard.c | |||
| @@ -3711,13 +3711,23 @@ kbd_buffer_store_event_hold (event, hold_quit) | |||
| 3711 | ++kbd_store_ptr; | 3711 | ++kbd_store_ptr; |
| 3712 | } | 3712 | } |
| 3713 | 3713 | ||
| 3714 | /* If we're in a section that requested to be interrupted as soon | 3714 | /* If we're inside while-no-input, and this event qualifies |
| 3715 | as input comes, then set quit-flag to cause an interrupt. */ | 3715 | as input, set quit-flag to cause an interrupt. */ |
| 3716 | if (!NILP (Vthrow_on_input) | 3716 | if (!NILP (Vthrow_on_input) |
| 3717 | && event->kind != FOCUS_IN_EVENT | 3717 | && event->kind != FOCUS_IN_EVENT |
| 3718 | && event->kind != HELP_EVENT | 3718 | && event->kind != HELP_EVENT |
| 3719 | && event->kind != DEICONIFY_EVENT) | 3719 | && event->kind != DEICONIFY_EVENT) |
| 3720 | Vquit_flag = Vthrow_on_input; | 3720 | { |
| 3721 | Vquit_flag = Vthrow_on_input; | ||
| 3722 | /* If we're inside a function that wants immediate quits, | ||
| 3723 | do it now. */ | ||
| 3724 | if (immediate_quit && NILP (Vinhibit_quit)) | ||
| 3725 | { | ||
| 3726 | immediate_quit = 0; | ||
| 3727 | sigfree (); | ||
| 3728 | QUIT; | ||
| 3729 | } | ||
| 3730 | } | ||
| 3721 | } | 3731 | } |
| 3722 | 3732 | ||
| 3723 | 3733 | ||