GNU bug report logs - #23207
25.1.50; file-notify event restarts the idle timer

Previous Next

Package: emacs;

Reported by: Johan Claesson <johanclaesson <at> bredband.net>

Date: Sun, 3 Apr 2016 13:23:01 UTC

Severity: normal

Found in version 25.1.50

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 23207 in the body.
You can then email your comments to 23207 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#23207; Package emacs. (Sun, 03 Apr 2016 13:23:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Johan Claesson <johanclaesson <at> bredband.net>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sun, 03 Apr 2016 13:23:02 GMT) Full text and rfc822 format available.

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

From: Johan Claesson <johanclaesson <at> bredband.net>
To: bug-gnu-emacs <at> gnu.org
Subject: 25.1.50; file-notify event restarts the idle timer
Date: Sun, 03 Apr 2016 15:22:05 +0200

Hi,

Every time there is a file-notify event the idle timer is restarted.
This will postpone the triggering of idle timers.  If there are
periodical file-notify events they may prevent idle timers from ever
triggering.  The following recipe creates periodical file-notify
events with the help of a normal non-idle timer.  The poor idle timer
started last in the recipe will never get to run.

emacs -Q

(with-current-buffer (find-file-noselect "/tmp/changing.txt")
  (setq auto-revert-interval 0.5)
  (auto-revert-mode))
(run-with-timer 1 1 (lambda () (write-region "x" nil "/tmp/changing.txt")))
(run-with-idle-timer 3 t (lambda () (message "Just idling")))

The same behavior is also present in 24.4 and 24.5 (i have not checked
older versions).

The idle timer gets restarted in read_char in keyboard.c.  The
following patch avoids this (but i am not sure it is the right
thing to do).

diff --git a/src/keyboard.c b/src/keyboard.c
index 1a5dbd0..b71c656 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -2834,7 +2834,9 @@ read_char (int commandflag, Lisp_Object map,
       last_input_event = c;
       call4 (Qcommand_execute, tem, Qnil, Fvector (1, &last_input_event), Qt);
 
-      if (CONSP (c) && EQ (XCAR (c), Qselect_window) && !end_time)
+      if (CONSP (c)
+          && (EQ (XCAR (c), Qselect_window) || EQ (XCAR (c), Qfile_notify))
+          && !end_time)
        /* We stopped being idle for this event; undo that.  This
           prevents automatic window selection (under
           mouse_autoselect_window from acting as a real input event, for


This is in the handing of special-event-map which includes
file-notify.  special-event-map includes some events that should
restart the idle timer because they are user input (like drag-n-drop).
But file-notify is not user input so i think it should not restart the
idle timer.

The same probably goes for dbus-event and config-changed-event that
also are in the special-event-map.  Maybe they also should be exempted
in the same way.

Also i don't understand why this code checks for Qselect_window.
select-window is not included in special-event-map so that should
never turn up there.

Regards,

/Johan




In GNU Emacs 25.1.50.2 (x86_64-unknown-linux-gnu, X toolkit)
 of 2016-04-01 built on goblin
Repository revision: 46edc38005ce47bdaae656a541858735a8ba5f26
Windowing system distributor 'The X.Org Foundation', version 11.0.11702000
System Description:	Ubuntu 15.10

Configured using:
 'configure --prefix=/ssd/home/jcl/usr --with-x-toolkit=lucid
 --without-toolkit-scroll-bars --disable-silent-rules
 --without-compress-install --enable-link-time-optimization
 PKG_CONFIG_PATH=/home/jcl/usr/lib/pkgconfig'

Configured features:
XAW3D XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GCONF
GSETTINGS NOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF
XFT ZLIB LUCID X11

Important settings:
  value of $LC_MONETARY: en_GB.UTF-8
  value of $LC_NUMERIC: en_GB.UTF-8
  value of $LC_TIME: en_GB.UTF-8
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=none
  locale-coding-system: utf-8-unix

Major mode: Text

Minor modes in effect:
  magit-auto-revert-mode: t
  display-time-mode: t
  minibuffer-depth-indicate-mode: t
  num3-mode: t
  minibuffer-electric-default-mode: t
  icomplete-mode: t
  diff-auto-refine-mode: t
  erc-list-mode: t
  erc-menu-mode: t
  erc-autojoin-mode: t
  erc-ring-mode: t
  erc-networks-mode: t
  erc-pcomplete-mode: t
  erc-track-mode: t
  erc-match-mode: t
  erc-button-mode: t
  erc-fill-mode: t
  erc-stamp-mode: t
  erc-netsplit-mode: t
  erc-irccontrols-mode: t
  erc-noncommands-mode: t
  erc-move-to-prompt-mode: t
  erc-readonly-mode: t
  global-git-commit-mode: t
  async-bytecomp-package-mode: t
  shell-dirtrack-mode: t
  wc-mode: t
  whitespace-mode: t
  winner-mode: t
  ido-everywhere: t
  which-function-mode: t
  global-eldoc-mode: t
  electric-layout-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  global-prettify-symbols-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  temp-buffer-resize-mode: t
  line-number-mode: t
  auto-fill-function: do-auto-fill
  transient-mark-mode: t

Recent messages:
Replaced 0 occurrences
Spell-checking region using aspell with default dictionary...done
Spell-checking suspended; use C-u M-$ to resume
Saving file /ssd/home/jcl/IDLE_TIMER_REPORT.el...
Wrote /ssd/home/jcl/IDLE_TIMER_REPORT.el
Saving file /ssd/home/jcl/IDLE_TIMER_REPORT.el...
Wrote /ssd/home/jcl/IDLE_TIMER_REPORT.el
Mark set
Saving file /ssd/home/jcl/IDLE_TIMER_REPORT.el...
Wrote /ssd/home/jcl/IDLE_TIMER_REPORT.el

Load-path shadows:
None found.

Features:
(nnir emacsbug nndoc gnus-dup esh-var esh-io esh-cmd esh-opt esh-ext
esh-proc esh-arg esh-groups eshell esh-module esh-mode esh-util
tree-widget inferior-slime slime-banner slime-cl-indent cl-indent elp
gud tar-mode edmacro let-alist color calc-bin calc-ext flow-fill shadow
semantic/symref/grep semantic/symref semantic/util-modes semantic/util
semantic semantic/tag semantic/lex semantic/fw mode-local cedet vc-bzr
vc-src vc-sccs vc-svn vc-cvs vc-rcs tabify gnus-dired tramp-cache
hippie-exp bug-reference w3m-form gnus-cite mail-extr gnus-async pulse
w3m-cookie smiley jcl-replace jcl-games-init jcl-muse-init htmlize-hack
htmlize muse-latex muse-html muse-xml-common muse-colors muse-publish
muse-project muse-protocols muse-regexps muse muse-nested-tags muse-mode
jcl-yaoddmuse-init yaoddmuse-extension yaoddmuse skeleton sgml-mode
eieio-opt speedbar sb-image ezimage dframe wiki-summary autoload
lisp-mnt cus-edit cus-start cus-load time-stamp misearch multi-isearch
jcl-renegade-goblin jcl-home-boot vc vc-dispatcher vc-git org-rmail
org-mhe org-irc org-info org-gnus org-docview org-bibtex bibtex org-bbdb
org-w3m jcl-load jcl-billboard-init typing-practice jcl-elisp-init
profiler tagbag-init jcl-grep-init jcl-abbrev-init jcl-ediff-init
jcl-term-init jcl-erlang-init jcl-sbg jcl-erlang-log bookmark
jcl-erlang-man man jcl-midnite-init jcl-midnite midnight
jcl-picpocket-init picpocket-test jcl-erc-init jcl-ido-init
jcl-dired-init image-file wdired jcl-register-init
jcl-command-subset-init jcl-generic-init generic-x jcl-eww-init eww
url-queue shr svg dom jcl-org-init poporg ob-latex ox-beamer org-feed
org-capture jcl-shell-init jcl-haskell-init jcl-haskell-old inf-haskell
haskell-decl-scan haskell-mode haskell-cabal haskell-utils
haskell-font-lock haskell-indentation haskell-string
haskell-sort-imports haskell-lexeme haskell-align-imports haskell-compat
haskell-complete-module flymake dabbrev haskell-customize
jcl-mentor-init mentor xml-rpc url-scgi jcl-google-init jcl-modes-init
checkdoc magit-blame magit-stash magit-bisect magit-remote magit-commit
magit-sequence magit magit-apply magit-wip magit-log magit-diff
smerge-mode magit-core magit-autorevert magit-process magit-popup
magit-mode magit-git crm magit-section magit-utils calc calc-loaddefs
calc-macs jcl-rfc rfcview goto-addr proced nroff-mode table picture
python rx jcl-ruby inf-ruby ruby-mode fpl macrostep-c cmacexp cwarn grep
jcl-elpa-init ffap view jcl-global-init time printing mb-depth saveplace
num3-mode minibuf-eldef icomplete jcl-sl-init jcl-keys-init kmacro
diff-mode jcl-sbg-ssit jcl-google google-translate
google-translate-default-ui google-translate-core-ui
google-translate-core google-translate-tk jcl-imenu jcl-wesnoth
wesnoth-mode wesnoth-wml-data wesnoth-update jcl-erlang jcl-sbg-compile
jcl-picpocket jcl-goblin jcl-dired jcl-dired-lexical picpocket
fuzzy-match jcl-ediff jcl-elisp jcl-grep edebug jcl-stumpwm jcl-org
jcl-erc erc-list erc-menu erc-join erc-ring erc-networks erc-pcomplete
erc-track erc-match erc-button erc-fill erc-stamp erc-netsplit
erc-goodies erc erc-backend erc-compat jcl-vbox jcl-lxc jcl-keys
windmove jcl-debbugs-init debbugs-org debbugs-gnu debbugs soap-client
warnings rng-xsd rng-dt rng-util xsd-regexp jcl-isearch jcl-sbg-scan
tagbag sbg filecache jcl-bugfix loadhist git-commit help-fns with-editor
async-bytecomp async tramp-sh tramp tramp-compat tramp-loaddefs trampver
ucs-normalize shell log-edit pcvs-util add-log dash apropos jcl-merge
jcl-wip jcl-work-buffer ediff-merg ediff-wind ediff-diff ediff-mult
ediff-help ediff-init ediff-util ediff jcl-sty jcl-epresent face-remap
org-indent epresent ox-latex ox-icalendar ox-html ox-ascii ox-publish ox
org-element avl-tree diet ps-print ps-print-loaddefs ps-def lpr
jcl-template jcl-copyright jcl-template-lib cperl-mode cc-mode cc-fonts
cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs
erlang tempo wc-mode jcl-register jcl-advice jcl-command-subset jcl-duff
clearcase reporter jcl-motion jcl-safe-init jcl-site-start jpt-mode
erlang-start qp gnus-ml gnus-topic cursor-sensor mm-archive
network-stream nsm url-http url-gw puny url-cache url-auth nnrss mm-url
nndraft nnmh nnfolder nnml jcl-master jcl-calendar-init jcl-emms-init
emms-playlist-limit emms-volume emms-volume-amixer emms-i18n
emms-history emms-score emms-stream-info emms-metaplaylist-mode
emms-bookmarks emms-cue emms-mode-line-icon emms-browser sort
emms-playlist-sort emms-last-played emms-player-xine emms-player-mpd tq
emms-streams emms-show-all emms-tag-editor emms-mark emms-cache
emms-info-ogginfo emms-info-mp3info emms-player-vlc emms-player-mplayer
jcl-emms emms-mode-line emms-librefm-stream emms-librefm-scrobbler
emms-playing-time emms-info later-do emms-playlist-mode
emms-source-playlist xml emms-setup emms-lyrics emms-url url url-proxy
url-privacy url-expand url-methods url-history url-cookie url-domsuf
emms-source-file locate emms-player-simple emms emms-compat
jcl-gnus-init jcl-gnus jcl-w3m-init jcl-term ange-ftp w3m-search
w3m-bookmark w3m-antenna w3m-rss jcl-org-import-icalendar jcl-status
jcl-buffer-init org-location-google-maps org-agenda google-maps
google-maps-static url-util google-maps-geocode google-maps-base json
map org org-macro org-footnote org-pcomplete pcomplete org-list
org-faces org-entities org-version ob-emacs-lisp ob ob-tangle ob-ref
ob-lob ob-table ob-exp org-src ob-keys ob-comint ob-core ob-eval
org-compat org-macs org-loaddefs autorevert filenotify appt jcl-calendar
jcl-swedish-postfix quail holidays hol-loaddefs icalendar diary-lib
diary-loaddefs cal-menu calendar cal-loaddefs w3m doc-view jka-compr
image-mode timezone w3m-hist w3m-fb bookmark-w3m w3m-ems w3m-ccl ccl
w3m-favicon w3m-image w3m-proc w3m-util dired-aux dired-x gnus-agent
gnus-srvr gnus-score score-mode nnvirtual nntp gnus-cache gnus-msg
gnus-art mm-uu mml2015 mm-view mml-smime smime dig gnus-sum gnus-group
gnus-undo gnus-start gnus-cloud nnimap nnmail mail-source tls gnutls
utf7 netrc nnoo parse-time gnus-spec gnus-int gnus-range gnus-win
mailcap starttls smtpmail sendmail message format-spec rfc822 mml
mml-sec epa derived epg mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader gnus nnheader gnus-util rmail
rmail-loaddefs rfc2047 rfc2045 ietf-drums mail-utils mm-util mail-prsvr
wid-edit jcl-boot jcl-slime-init slime-fancy slime-trace-dialog
slime-fontifying-fu slime-package-fu slime-references
slime-compiler-notes-tree slime-scratch slime-presentations bridge
slime-macrostep macrostep slime-mdot-fu slime-enclosing-context
slime-fuzzy slime-fancy-trace slime-fancy-inspector slime-c-p-c
slime-autodoc jcl-misc jcl-ert ispell find-lisp jcl-misc-lexical
whitespace winner jcl-windows jcl-buffer ido ert find-func ewoc debug
jcl-compile slime-editing-commands slime-repl slime-parse slime compile
etags xref project arc-mode archive-mode noutline outline easy-mmode pp
comint ansi-color hyperspec thingatpt browse-url jcl-face hi-lock dired
dired-loaddefs paren mic-paren which-func imenu hl-line jcl-times-init
jcl-early-init jcl-compat-init advice jcl-util seq subr-x jcl-times
server term disp-table ehelp ring sh-script smie executable
jcl-load-path tex-site eimp-autoloads gnugo-autoloads
ascii-art-to-unicode-autoloads htmlize-autoloads ipython-autoloads
list-utils-autoloads cl memory-usage-autoloads muse-autoloads
num3-mode-autoloads finder-inf python-autoloads slime-autoloads info
package epg-config url-handlers url-parse auth-source cl-seq eieio
byte-opt bytecomp byte-compile cl-extra help-mode easymenu cconv
eieio-core cl-macs gv eieio-loaddefs cl-loaddefs pcase cl-lib
password-cache url-vars time-date mule-util tooltip eldoc electric
uniquify ediff-hook vc-hooks lisp-float-type mwheel term/x-win x-win
term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list newcomment elisp-mode lisp-mode prog-mode register page
menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock
syntax facemenu font-core term/tty-colors frame cl-generic cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european
ethiopic indian cyrillic chinese charscript case-table epa-hook
jka-cmpr-hook help simple abbrev obarray minibuffer cl-preloaded nadvice
loaddefs button faces cus-face macroexp files text-properties overlay
sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote dbusbind inotify dynamic-setting
system-font-setting font-render-setting x-toolkit x multi-tty
make-network-process emacs)

Memory information:
((conses 16 2659061 392210)
 (symbols 48 102906 0)
 (miscs 40 6241 8580)
 (strings 32 502665 71858)
 (string-bytes 1 17223972)
 (vectors 16 136297)
 (vector-slots 8 2761520 106348)
 (floats 8 1490 1629)
 (intervals 56 317146 3703)
 (buffers 976 171)
 (heap 1024 216403 18278))




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#23207; Package emacs. (Sun, 03 Apr 2016 16:06:02 GMT) Full text and rfc822 format available.

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

From: Michael Albinus <michael.albinus <at> gmx.de>
To: Johan Claesson <johanclaesson <at> bredband.net>
Cc: 23207 <at> debbugs.gnu.org
Subject: Re: bug#23207: 25.1.50; file-notify event restarts the idle timer
Date: Sun, 03 Apr 2016 18:05:17 +0200
Johan Claesson <johanclaesson <at> bredband.net> writes:

> Hi,

Hi Johan,

> Every time there is a file-notify event the idle timer is restarted.
> This will postpone the triggering of idle timers.  If there are
> periodical file-notify events they may prevent idle timers from ever
> triggering.  The following recipe creates periodical file-notify
> events with the help of a normal non-idle timer.  The poor idle timer
> started last in the recipe will never get to run.
>
> emacs -Q
>
> (with-current-buffer (find-file-noselect "/tmp/changing.txt")
>   (setq auto-revert-interval 0.5)
>   (auto-revert-mode))
> (run-with-timer 1 1 (lambda () (write-region "x" nil "/tmp/changing.txt")))
> (run-with-idle-timer 3 t (lambda () (message "Just idling")))
>
> The same behavior is also present in 24.4 and 24.5 (i have not checked
> older versions).

Thanks for the report. There is a problem, indeed!

> The idle timer gets restarted in read_char in keyboard.c.  The
> following patch avoids this (but i am not sure it is the right
> thing to do).
>
> diff --git a/src/keyboard.c b/src/keyboard.c
> index 1a5dbd0..b71c656 100644
> --- a/src/keyboard.c
> +++ b/src/keyboard.c
> @@ -2834,7 +2834,9 @@ read_char (int commandflag, Lisp_Object map,
>        last_input_event = c;
>        call4 (Qcommand_execute, tem, Qnil, Fvector (1, &last_input_event), Qt);
>  
> -      if (CONSP (c) && EQ (XCAR (c), Qselect_window) && !end_time)
> +      if (CONSP (c)
> +          && (EQ (XCAR (c), Qselect_window) || EQ (XCAR (c), Qfile_notify))
> +          && !end_time)
>         /* We stopped being idle for this event; undo that.  This
>            prevents automatic window selection (under
>            mouse_autoselect_window from acting as a real input event, for

Looks good to me. Of course, we must wrap EQ (XCAR (c), Qfile_notify) by
#ifdef USE_FILE_NOTIFY; not all Emacs instances are configured to use
file notifications.

> This is in the handing of special-event-map which includes
> file-notify.  special-event-map includes some events that should
> restart the idle timer because they are user input (like drag-n-drop).
> But file-notify is not user input so i think it should not restart the
> idle timer.
>
> The same probably goes for dbus-event and config-changed-event that
> also are in the special-event-map.  Maybe they also should be exempted
> in the same way.

I agree for dbus-event. Don't know whether we need it also for
config-changed-event, my naïve gut feeling tells me that this doesn't
happen very often. Maybe somebody else knows better.

> Also i don't understand why this code checks for Qselect_window.
> select-window is not included in special-event-map so that should
> never turn up there.

Same here.

Let's wait for some few days. If nobody else contributes further, I
would apply your patch, including dbus-event.

> Regards,
>
> /Johan

Best regards, Michael.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#23207; Package emacs. (Sun, 03 Apr 2016 17:18:02 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Michael Albinus <michael.albinus <at> gmx.de>
Cc: 23207 <at> debbugs.gnu.org, johanclaesson <at> bredband.net
Subject: Re: bug#23207: 25.1.50; file-notify event restarts the idle timer
Date: Sun, 03 Apr 2016 20:16:59 +0300
> From: Michael Albinus <michael.albinus <at> gmx.de>
> Date: Sun, 03 Apr 2016 18:05:17 +0200
> Cc: 23207 <at> debbugs.gnu.org
> 
> > diff --git a/src/keyboard.c b/src/keyboard.c
> > index 1a5dbd0..b71c656 100644
> > --- a/src/keyboard.c
> > +++ b/src/keyboard.c
> > @@ -2834,7 +2834,9 @@ read_char (int commandflag, Lisp_Object map,
> >        last_input_event = c;
> >        call4 (Qcommand_execute, tem, Qnil, Fvector (1, &last_input_event), Qt);
> >  
> > -      if (CONSP (c) && EQ (XCAR (c), Qselect_window) && !end_time)
> > +      if (CONSP (c)
> > +          && (EQ (XCAR (c), Qselect_window) || EQ (XCAR (c), Qfile_notify))
> > +          && !end_time)
> >         /* We stopped being idle for this event; undo that.  This
> >            prevents automatic window selection (under
> >            mouse_autoselect_window from acting as a real input event, for
> 
> Looks good to me. Of course, we must wrap EQ (XCAR (c), Qfile_notify) by
> #ifdef USE_FILE_NOTIFY; not all Emacs instances are configured to use
> file notifications.

Right.

> > This is in the handing of special-event-map which includes
> > file-notify.  special-event-map includes some events that should
> > restart the idle timer because they are user input (like drag-n-drop).
> > But file-notify is not user input so i think it should not restart the
> > idle timer.
> >
> > The same probably goes for dbus-event and config-changed-event that
> > also are in the special-event-map.  Maybe they also should be exempted
> > in the same way.
> 
> I agree for dbus-event. Don't know whether we need it also for
> config-changed-event, my naïve gut feeling tells me that this doesn't
> happen very often. Maybe somebody else knows better.

Why does frequency matter here?

> > Also i don't understand why this code checks for Qselect_window.
> > select-window is not included in special-event-map so that should
> > never turn up there.
> 
> Same here.

Couldn't someone bind select-window in special-event-map?

Anyway, I think we should simply check all the special events that are
not user events here.  If they don't have a binding in
special-event-map, then the test will always fail.

What about focus-in/out events?  Or xwidget-event?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#23207; Package emacs. (Sun, 03 Apr 2016 17:55:01 GMT) Full text and rfc822 format available.

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

From: Michael Albinus <michael.albinus <at> gmx.de>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 23207 <at> debbugs.gnu.org, johanclaesson <at> bredband.net
Subject: Re: bug#23207: 25.1.50; file-notify event restarts the idle timer
Date: Sun, 03 Apr 2016 19:53:56 +0200
Eli Zaretskii <eliz <at> gnu.org> writes:

>> I agree for dbus-event. Don't know whether we need it also for
>> config-changed-event, my naïve gut feeling tells me that this doesn't
>> happen very often. Maybe somebody else knows better.
>
> Why does frequency matter here?

I have no strict preferences. So we could check also for config-changed-event.

> Anyway, I think we should simply check all the special events that are
> not user events here.  If they don't have a binding in
> special-event-map, then the test will always fail.
>
> What about focus-in/out events?  Or xwidget-event?

focus-in/out events sound like triggered by a user action. So it is OK
to restart an idle-timer. My Emacs hasn't compiled them in.

For xwidget-event, I don't know whether it is based on a user action, or
something else. My Emacs isn't compiled with it.

OTOH, my Emacs knows ns-unput-working-text and ns-put-working-text in
special-event-map. Is that OK? I'm running Emacs on GNU/Linux.

Best regards, Michael.




Reply sent to Michael Albinus <michael.albinus <at> gmx.de>:
You have taken responsibility. (Sun, 10 Apr 2016 08:13:01 GMT) Full text and rfc822 format available.

Notification sent to Johan Claesson <johanclaesson <at> bredband.net>:
bug acknowledged by developer. (Sun, 10 Apr 2016 08:13:02 GMT) Full text and rfc822 format available.

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

From: Michael Albinus <michael.albinus <at> gmx.de>
To: Johan Claesson <johanclaesson <at> bredband.net>
Cc: 23207-done <at> debbugs.gnu.org
Subject: Re: bug#23207: 25.1.50; file-notify event restarts the idle timer
Date: Sun, 10 Apr 2016 10:12:10 +0200
Johan Claesson <johanclaesson <at> bredband.net> writes:

> Hi,

Hi Johan,

> The idle timer gets restarted in read_char in keyboard.c.  The
> following patch avoids this (but i am not sure it is the right
> thing to do).

I have committed an extended version of your patch to the master
branch. Closing the bug.

I've also tried to add a test to filenotify-tests.el, but I
failed. Testing idle timers isn't easy.

Best regards, Michael.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#23207; Package emacs. (Sun, 10 Apr 2016 14:22:02 GMT) Full text and rfc822 format available.

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

From: Johan Claesson <johanclaesson <at> bredband.net>
To: Michael Albinus <michael.albinus <at> gmx.de>
Cc: 23207-done <at> debbugs.gnu.org
Subject: Re: bug#23207: 25.1.50; file-notify event restarts the idle timer
Date: Sun, 10 Apr 2016 16:21:49 +0200


Hi,

Great.  Thanks, Michael.

Regards,

/Johan




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

> Johan Claesson <johanclaesson <at> bredband.net> writes:
>
>> Hi,
>
> Hi Johan,
>
>> The idle timer gets restarted in read_char in keyboard.c.  The
>> following patch avoids this (but i am not sure it is the right
>> thing to do).
>
> I have committed an extended version of your patch to the master
> branch. Closing the bug.
>
> I've also tried to add a test to filenotify-tests.el, but I
> failed. Testing idle timers isn't easy.
>
> Best regards, Michael.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Mon, 09 May 2016 11:24:03 GMT) Full text and rfc822 format available.

This bug report was last modified 9 years and 101 days ago.

Previous Next


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