--- Begin Message ---
Subject: |
24.1.50; notifications-notify eats keystrokes |
Date: |
Thu, 10 May 2012 22:45:10 +0200 |
Hello,
Please try the following code:
--8<---------------cut here---------------start------------->8---
(require 'notifications)
(defun test-func ()
(notifications-notify
:title "Test"
:timeout 1000))
(run-with-timer 2 2 'test-func)
--8<---------------cut here---------------end--------------->8---
with "emacs -Q" (latest version from trunk).
Then just type some text and you'll see, that some of the letters, that
you type, will be missing in the buffer.
Cheers, Peter
In GNU Emacs 24.1.50.2 (x86_64-suse-linux-gnu, GTK+ Version 2.22.1)
of 2012-05-10 on micropit
Bzr revision: 108190 address@hidden
Windowing system distributor `The X.Org Foundation', version 11.0.10903000
Configured using:
`configure '--without-toolkit-scroll-bars''
Important settings:
value of $LC_ALL: nil
value of $LC_COLLATE: nil
value of $LC_CTYPE: en_GB.utf8
value of $LC_MESSAGES: nil
value of $LC_MONETARY: nil
value of $LC_NUMERIC: nil
value of $LC_TIME: nil
value of $LANG: nil
value of $XMODIFIERS: @im=local
locale-coding-system: utf-8-unix
default enable-multibyte-characters: t
--
Peter
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#11447: 24.1.50; notifications-notify eats keystrokes |
Date: |
Sun, 13 May 2012 11:11:43 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.1.50 (gnu/linux) |
Stefan Monnier <address@hidden> writes:
> 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.
Yes.
> 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.
OK, I remove the timeout.
> 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)))))
Unfortunately, it doesn't work either. When unread-command-events is
non-nil, read-event takes the events from there instead of reading them
from the input streams. This happens after the first time a character
has been read in the loop, before the awaited D-Bus event did arrive.
I've committed my original patch (minus the read-event timeout). Bug is
closed.
> -- Stefan
Best regards, Michael.
--- End Message ---