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

From: Michael Heerdegen <[email-masked]>
Date: Sat, 10 Jan 2015 23:24:45 +0100

Eli Zaretskii <[email-masked]> writes:

> I suggest to establish exactly which event causes that, then we could
> focus on how to filter that out, either in general or in your specific
> situation.

Ok, I did the following, hoping it's good enough.

In keyboard.c, near the end of the defun of kbd_buffer_store_event_hold,
there is an exclusion list of events ignored by throw_on_input:

if (!NILP (Vthrow_on_input)
      && event->kind != FOCUS_IN_EVENT
      && event->kind != HELP_EVENT
      && event->kind != DEICONIFY_EVENT)
    {...
    ...}

When I add the two lines

      && event->kind != FOCUS_OUT_EVENT
      && event->kind != ICONIFY_EVENT

my problem is solved and throw-on-input does not fire when switching
the workspaces.  Helm does not stop matching anymore.  Also the

(catch 'tag
  (let ((throw-on-input 'tag))
    (while t)))

example is not intercepted.

When I only add one of either lines, the behavior is not different from
what we have now.

Michael.