GNU bug report logs - #10807
24.0.93; dbus NotificationClosed signal should not reset idle-time when reason=1

Previous Next

Package: emacs;

Reported by: Peter Münster <pmrb <at> free.fr>

Date: Mon, 13 Feb 2012 23:00:02 UTC

Severity: wishlist

Found in version 24.0.93

Done: Michael Albinus <michael.albinus <at> gmx.de>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 10807 in the body.
You can then email your comments to 10807 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#10807; Package emacs. (Mon, 13 Feb 2012 23:00:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Peter Münster <pmrb <at> free.fr>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Mon, 13 Feb 2012 23:00:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Peter Münster <pmrb <at> free.fr>
To: bug-gnu-emacs <at> gnu.org
Subject: 24.0.93;
	dbus NotificationClosed signal should not reset idle-time when
	reason=1
Date: Mon, 13 Feb 2012 23:54:13 +0100
Hello,

The current idle-time is reset to 0, when a notification window expires.
IMO it should not, or it should be configurable.

Discussion on usenet:
http://thread.gmane.org/gmane.emacs.help/83685

Test file:
; save file in /tmp/test.el and run "emacs -Q -l /tmp/test.el"
(require 'notifications)
(notifications-notify :timeout 1000)
(defun my-test ()
  (let ((it (current-idle-time)))
    (message "idle time = %f"
             (if it
                 (+ (cadr it) (/ (nth 2 it) 1000000.0))
               0))))
(run-with-timer 1.5 nil 'my-test)

Result:              idle time = about 0.5
Expected result:     idle time = about 1.5

Use case, where resetting the idle-time to 0 is annoying:

On the one hand, I use `gnus-demon-add-handler' for several actions,
that need to be done repeatedly and only when idle for at least some
minutes.

On the other hand I use 
    (setq appt-disp-window-function 'pm/todo-notify ; popup notify-windows
          appt-display-interval     1)
and
    (org-agenda-to-appt t '((headline "TODO")))
in such a way, that the notification windows are refreshed once per
minute (":timeout 60000"). This is nice, because I don't need to click
on the notification window, I just edit my org-mode-todo-list (switch
an item from TODO to DONE), and the notification window will disappear
automatically in at most 60 seconds.

But when I'm idle, and once per minute a notification windows expires,
the gnus-demon won't activate my handlers, because the idle-time is
always reset, and this can be annoying.

-- 
           Peter




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#10807; Package emacs. (Tue, 14 Feb 2012 20:25:01 GMT) Full text and rfc822 format available.

Message #8 received at 10807 <at> debbugs.gnu.org (full text, mbox):

From: Michael Albinus <michael.albinus <at> gmx.de>
To: Peter Münster <pmrb <at> free.fr>
Cc: 10807 <at> debbugs.gnu.org
Subject: Re: bug#10807: 24.0.93;
	dbus NotificationClosed signal should not reset idle-time when
	reason=1
Date: Tue, 14 Feb 2012 21:22:33 +0100
Peter Münster <pmrb <at> free.fr> writes:

> Hello,

Hi,

> The current idle-time is reset to 0, when a notification window expires.
> IMO it should not, or it should be configurable.

notifications.el uses D-Bus for communication. Incoming D-Bus events,
like the NotificationClosed signal, are handled via `special-event-map'.

In keyboard.c, the idle-time is reset for every incoming event. This is
useful for keyboard or mouse events, but it might not be desired for
D-Bus events. As a solution, one could change keyboard.c such a way,
that D-Bus events do not result in a reset of idle-time.

OTOH, for some D-Bus it might be desirable to reset the idle-time.
Roughly spoken, D-Bus signals should not reset idle-time, and D-Bus
method-return events should. This could be made configurable.

And there might be also other events handled via `special-event-map',
which should not reset idle-time when arriving. A candidate could be
`config-changed-event'. In order to achieve this, "struct input_event"
could be extended by a field "reset_idle_time", which is TRUE by
default. Events which shall not reset the idle-time set this to FALSE.

Best regards, Michael.




Reply sent to Michael Albinus <michael.albinus <at> gmx.de>:
You have taken responsibility. (Fri, 09 Mar 2012 07:44:02 GMT) Full text and rfc822 format available.

Notification sent to Peter Münster <pmrb <at> free.fr>:
bug acknowledged by developer. (Fri, 09 Mar 2012 07:44:02 GMT) Full text and rfc822 format available.

Message #13 received at 10807-done <at> debbugs.gnu.org (full text, mbox):

From: Michael Albinus <michael.albinus <at> gmx.de>
To: Peter Münster <pmrb <at> free.fr>
Cc: 10807-done <at> debbugs.gnu.org
Subject: Re: bug#10807: 24.0.93;
	dbus NotificationClosed signal should not reset idle-time when
	reason=1
Date: Wed, 07 Mar 2012 08:54:41 +0100
Peter Münster <pmrb <at> free.fr> writes:

> Hello,

Hi,

> The current idle-time is reset to 0, when a notification window expires.
> IMO it should not, or it should be configurable.

I have modified notifications.el such a way, that the corresponding
signal handler is registered only in case :on-close has passed as
argument to `notifications-notify'. This shall avoid superfluous arrival
of signals, which generates D-Bus events.

Best regards, Michael.



bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Fri, 06 Apr 2012 11:24:02 GMT) Full text and rfc822 format available.

This bug report was last modified 13 years and 138 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.