GNU bug report logs -
#11447
24.1.50; notifications-notify eats keystrokes
Previous Next
Reported by: Peter Münster <pmlists <at> free.fr>
Date: Thu, 10 May 2012 20:46:01 UTC
Severity: normal
Found in version 24.1.50
Done: Michael Albinus <michael.albinus <at> gmx.de>
Bug is archived. No further changes may be made.
Full log
Message #26 received at 11447 <at> debbugs.gnu.org (full text, mbox):
>>> (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.
> OK.
>>> With the example in this bug report, I get blocked then.
>> What do you mean by "blocked"?
> An input char goes into unread-command-event.
Why? Who puts it there?
> Since nobody handles it, the while-loop runs forever.
I think I understand what you mean: you mean that while you do `sit-for'
you actually want to run the code associated with the incoming events,
since that code might be the one which changes dbus-return-values-table.
So, indeed sit-for and input-pending-p won't cut it. Your code looks
OK, then, though you don't need to use a 0.1 timeout, AFAICT.
And in order to avoid the (let (unread-command-events) ...), I'd do
something like:
(let ((seen ()))
(unwind-protect
(let ((event (read-event)))
(when (and event (not (ignore-errors (dbus-check-event event))))
(push event seen)))
(setq unread-command-events
(append unread-command-events (nreverse seen)))))
-- Stefan
This bug report was last modified 13 years and 62 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.