From: Thierry Volpiatto <thierry.volpiatto@gmail.com>
To: Reuben Thomas <rrt@sc3d.org>
Cc: 19547@debbugs.gnu.org
Subject: bug#19547: Patch for this bug
Date: Sun, 27 Nov 2016 19:29:49 +0100 [thread overview]
Message-ID: <87polgwzc2.fsf@gmail.com> (raw)
In-Reply-To: <CAOnWdojz-5YfLNibDOLfC5DTtcLE3W2sMz8mySSsdDs40ViuAw@mail.gmail.com>
Reuben Thomas <rrt@sc3d.org> writes:
> This was still on my to-do list, but thanks very much, Thierry, for taking
> over.
You are welcome ;-) Don't hesitate to correct my poor C code, thanks.
So here the final patch I could push if Eli is ok after looking the
comments in previous mail; I had prefered also adding the changes to
simple.el in same commit when i know how to do, basically it is just how/where
to add:
(setq while-no-input-ignore-events
'(focus-in focus-out help iconify deiconify selection-request))
Here the last patch:
1 file changed, 22 insertions(+), 5 deletions(-)
src/keyboard.c | 27 ++++++++++++++++++++++-----
modified src/keyboard.c
@@ -3567,14 +3567,22 @@ kbd_buffer_store_buffered_event (union buffered_input_event *event,
#endif /* subprocesses */
}
+ Lisp_Object ignore_event = Qnil;
+
+ switch (event->kind)
+ {
+ case FOCUS_IN_EVENT: ignore_event = Qfocus_in; break;
+ case FOCUS_OUT_EVENT: ignore_event = Qfocus_out; break;
+ case HELP_EVENT: ignore_event = Qhelp; break;
+ case ICONIFY_EVENT: ignore_event = Qiconify; break;
+ case DEICONIFY_EVENT: ignore_event = Qdeiconify; break;
+ case SELECTION_REQUEST_EVENT: ignore_event = Qselection_request; break;
+ }
+
/* If we're inside while-no-input, and this event qualifies
as input, set quit-flag to cause an interrupt. */
if (!NILP (Vthrow_on_input)
- && event->kind != FOCUS_IN_EVENT
- && event->kind != FOCUS_OUT_EVENT
- && event->kind != HELP_EVENT
- && event->kind != ICONIFY_EVENT
- && event->kind != DEICONIFY_EVENT)
+ && !NILP (Fmemq (ignore_event, Vwhile_no_input_ignore_events)))
{
Vquit_flag = Vthrow_on_input;
/* If we're inside a function that wants immediate quits,
@@ -11164,6 +11172,10 @@ syms_of_keyboard (void)
DEFSYM (Qiconify_frame, "iconify-frame");
DEFSYM (Qmake_frame_visible, "make-frame-visible");
DEFSYM (Qselect_window, "select-window");
+ DEFSYM (Qhelp, "help");
+ DEFSYM (Qiconify, "iconify");
+ DEFSYM (Qdeiconify, "deiconify");
+ DEFSYM (Qselection_request, "selection-request");
{
int i;
@@ -11822,6 +11834,11 @@ signals. */);
/* Create the initial keyboard. Qt means 'unset'. */
initial_kboard = allocate_kboard (Qt);
+
+ DEFVAR_LISP ("while-no-input-ignore-events",
+ Vwhile_no_input_ignore_events,
+ doc: /* Ignored events from while-no-input. */);
+ Vwhile_no_input_ignore_events = Qnil;
}
void
--
Thierry
next prev parent reply other threads:[~2016-11-27 18:29 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-09 15:46 bug#19547: 25.0.50; throw-on-input "fires" when switching workspace Michael Heerdegen
2015-01-09 19:59 ` Eli Zaretskii
2015-01-09 21:48 ` Michael Heerdegen
2015-01-10 9:14 ` Eli Zaretskii
2015-01-09 23:33 ` Stefan Monnier
2015-01-10 0:00 ` Michael Heerdegen
2015-01-10 1:26 ` Michael Heerdegen
2015-01-10 9:12 ` Eli Zaretskii
2015-01-10 22:24 ` Michael Heerdegen
2015-01-11 1:47 ` Stefan Monnier
2015-01-20 2:46 ` Michael Heerdegen
2015-01-20 3:43 ` Eli Zaretskii
2015-01-29 19:59 ` Michael Heerdegen
2015-01-31 8:38 ` Eli Zaretskii
2015-02-01 14:25 ` Michael Heerdegen
2015-02-01 15:54 ` Eli Zaretskii
2015-02-01 17:21 ` Michael Heerdegen
2015-02-01 17:35 ` Eli Zaretskii
2015-10-13 10:50 ` Michael Heerdegen
2015-12-10 20:14 ` John Wiegley
2015-12-10 22:05 ` Michael Heerdegen
2015-12-10 23:01 ` John Wiegley
[not found] ` <83fuz98gre.fsf@gnu.org>
2015-12-11 10:17 ` Thierry Volpiatto
[not found] ` <838u518d32.fsf@gnu.org>
2015-12-11 14:22 ` Michael Heerdegen
[not found] ` <83r3it6m5u.fsf@gnu.org>
2015-12-26 0:37 ` Michael Heerdegen
2015-12-26 10:01 ` Eli Zaretskii
2015-01-10 9:18 ` Eli Zaretskii
2016-11-08 18:28 ` bug#19547: Patch for this bug Reuben Thomas
2016-11-08 20:40 ` Eli Zaretskii
2016-11-08 22:20 ` Reuben Thomas
2016-11-09 19:43 ` Eli Zaretskii
2016-11-09 22:03 ` Reuben Thomas
2016-11-10 17:46 ` Eli Zaretskii
2016-11-25 17:10 ` Thierry Volpiatto
2016-11-26 7:40 ` Eli Zaretskii
2016-11-26 8:39 ` Andreas Schwab
2016-11-26 9:02 ` Eli Zaretskii
2016-11-26 18:50 ` Thierry Volpiatto
2016-11-27 6:52 ` Thierry Volpiatto
2016-11-27 14:07 ` npostavs
2016-11-27 14:53 ` Thierry Volpiatto
2016-11-27 15:54 ` Eli Zaretskii
2016-11-27 17:59 ` Thierry Volpiatto
2016-11-27 18:40 ` Eli Zaretskii
2016-11-27 19:03 ` Thierry Volpiatto
2016-11-27 19:39 ` Eli Zaretskii
2016-11-27 19:54 ` Thierry Volpiatto
2016-11-27 20:06 ` Eli Zaretskii
2016-11-27 20:53 ` Thierry Volpiatto
2016-11-30 20:27 ` Thierry Volpiatto
2016-12-01 3:28 ` Eli Zaretskii
2017-06-11 22:03 ` npostavs
2016-11-27 18:42 ` npostavs
2016-11-27 19:08 ` Thierry Volpiatto
2016-11-27 7:16 ` Thierry Volpiatto
2016-11-27 18:05 ` Reuben Thomas
2016-11-27 18:29 ` Thierry Volpiatto [this message]
2016-11-27 21:10 ` Johan Bockgård
2016-11-28 6:00 ` Thierry Volpiatto
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87polgwzc2.fsf@gmail.com \
--to=thierry.volpiatto@gmail.com \
--cc=19547@debbugs.gnu.org \
--cc=rrt@sc3d.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).