Subject: Re: bug#11447: 24.1.50; notifications-notify eats keystrokes

From: Stefan Monnier <[email-masked]>
Date: Fri, 11 May 2012 11:20:22 -0400

>>> (with-timeout ((if timeout (/ timeout 1000.0) 25))
>>> (while (eq (gethash key dbus-return-values-table :ignore) :ignore)
>>> ! 	(let ((event (let (unread-command-events) (read-event nil nil 0.1))))
>>> ! 	  (when (and event (not (ignore-errors (dbus-check-event event))))
>>> ! 	    (setq unread-command-events
>>> ! 		  (append unread-command-events (list event)))))))
>> 
>> Shouldn't this code use input-pending-p instead?

> Maybe, but I don't know how. I've tried this:

>     (with-timeout ((if timeout (/ timeout 1000.0) 25))
>       (while (eq (gethash key dbus-return-values-table :ignore) :ignore)
>       (or (input-pending-p) (sit-for 0.1 'nodisp))))

Well, actually if you use sit-for you don't need input-pending-p.

> With the example in this bug report, I get blocked then.

What do you mean by "blocked"?

> A key might be placed in `unread-command-events', and I still must
> handle it.

What do you mean by "handle it"?

Could let-binding unread-command-events around the call to sit-for
address the issue?

        Stefan