Subject: Re: bug#19547: 25.0.50; throw-on-input "fires" when switching workspace

From: Michael Heerdegen <[email-masked]>
Date: Tue, 13 Oct 2015 12:50:19 +0200

Eli Zaretskii <[email-masked]> writes:

> Thanks for testing.

FWIW, we have been bitten by this problem again, for example (just for
reference, no need to read the complete thread):

    https://github.com/emacs-helm/helm/issues/1157

 Most or all of the time the problem was related to a tool called
"autocutsel".  It makes Emacs receiving a SELECTION_REQUEST_EVENT that
breaks `while-no-input'.

The OP found that this patch:

@@ -3542,7 +3542,8 @@ kbd_buffer_store_buffered_event (union buffered_input_event *event,
       && event->kind != FOCUS_OUT_EVENT
       && event->kind != HELP_EVENT
       && event->kind != ICONIFY_EVENT
-      && event->kind != DEICONIFY_EVENT)
+      && event->kind != DEICONIFY_EVENT
+      && event->kind != SELECTION_REQUEST_EVENT)
     {
       Vquit_flag = Vthrow_on_input;
       /* If we're inside a function that wants immediate quits,

fixes the problem for him.

Dunno if it is a good idea to install that.  We kind of misuse
`while-no-input' in Helm, but due to the lack of a better alternative.
What we would need would be something like `while-no-keyboard-input'
that only rewinds when the user hits a key on his keyboard.  Any other
event breaking `while-no-input' just leaves the user wondering why no
candidates have been calculated.

Thanks,

Michael.