Subject: bug#23810: avoid.el: mouse-avoidance-ignore-p does not ignore file-notify events

From: Jonathan Kotta <[email-masked]>
Date: Mon, 20 Jun 2016 12:41:36 -0500

I use mpd and ncmpcpp.  mpd allows sending sound data to a fifo, and
ncmpcpp can read from that fifo and do sound visualizations with the data.
So when mpd is playing, it is constantly writing to the fifo and generating
file-notify events.  I'm not entirely sure why Emacs is receiving these
events, but it is, and it causes mouse avoidance to kick in without
typing.  I can't reproduce the the problem reliably, but it occurs
regularly.  The attached patch fixes it for me, and it just makes sense for
mouse-avoidance-ignore-p to ignore file-notify events.  I'm not sure if
there are additional types of events that it should also ignore; I couldn't
find an exhaustive list of all the event types.

diff --git a/lisp/avoid.el b/lisp/avoid.el
index 3d43539..e42e08a 100644
--- a/lisp/avoid.el
+++ b/lisp/avoid.el
@@ -335,7 +335,7 @@ redefine this function to suit your own tastes."
      (let ((modifiers (event-modifiers (car last-input-event))))
        (or (memq (car last-input-event)
  '(mouse-movement scroll-bar-movement
-   select-window focus-out))
+   select-window focus-out file-notify))
    (memq 'click modifiers)
    (memq 'double modifiers)
    (memq 'triple modifiers)

-- 
Thanks,

Jonathan Kotta

Hofstadter's Law:
    It always takes longer than you expect, even
    when you take into account Hofstadter's Law.