summaryrefslogtreecommitdiff
path: root/lisp/avoid.el
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>1997-08-12 18:20:00 +0000
committerRichard M. Stallman <rms@gnu.org>1997-08-12 18:20:00 +0000
commit92c1f8ac31c7d3e67971e165431d540ec010e3ac (patch)
treeb78d245f225392ab734e1d24c239e0e2b8acd1bb /lisp/avoid.el
parentc4121c6f8717f911c77fc3b9d1491e4ca2039556 (diff)
downloademacs-92c1f8ac31c7d3e67971e165431d540ec010e3ac.tar.gz
(mouse-avoidance-timer): New variable.
(mouse-avoidance-mode): Create or cancel a time, instead of using post-command-idle-hook.
Diffstat (limited to 'lisp/avoid.el')
-rw-r--r--lisp/avoid.el18
1 files changed, 12 insertions, 6 deletions
diff --git a/lisp/avoid.el b/lisp/avoid.el
index 48f0914f163..7aee1e6b11e 100644
--- a/lisp/avoid.el
+++ b/lisp/avoid.el
@@ -111,6 +111,9 @@ Only applies in mouse-avoidance-modes `animate' and `jump'."
(defvar mouse-avoidance-n-pointer-shapes 0)
(defvar mouse-avoidance-old-pointer-shape nil)
+;; This timer is used to run something when Emacs is idle.
+(defvar mouse-avoidance-timer nil)
+
;;; Functions:
(defsubst mouse-avoidance-set-pointer-shape (shape)
@@ -335,9 +338,9 @@ definition of \"random distance\".)"
nil t))))
(if (eq mode 'cat-and-mouse)
(setq mode 'animate))
- (remove-hook 'post-command-idle-hook 'mouse-avoidance-banish-hook)
- (remove-hook 'post-command-idle-hook 'mouse-avoidance-exile-hook)
- (remove-hook 'post-command-idle-hook 'mouse-avoidance-fancy-hook)
+ (if mouse-avoidance-timer
+ (cancel-timer mouse-avoidance-timer))
+ (setq mouse-avoidance-timer nil)
;; Restore pointer shape if necessary
(if (eq mouse-avoidance-mode 'proteus)
@@ -349,19 +352,22 @@ definition of \"random distance\".)"
((or (eq mode 'jump)
(eq mode 'animate)
(eq mode 'proteus))
- (add-hook 'post-command-idle-hook 'mouse-avoidance-fancy-hook)
+ (setq mouse-avoidance-timer
+ (run-with-idle-timer 0.1 t 'mouse-avoidance-fancy-hook))
(setq mouse-avoidance-mode mode
mouse-avoidance-state (cons 0 0)
mouse-avoidance-old-pointer-shape x-pointer-shape))
((eq mode 'exile)
- (add-hook 'post-command-idle-hook 'mouse-avoidance-exile-hook)
+ (setq mouse-avoidance-timer
+ (run-with-idle-timer 0.1 t 'mouse-avoidance-exile-hook))
(setq mouse-avoidance-mode mode
mouse-avoidance-state nil))
((or (eq mode 'banish)
(eq mode t)
(and (null mode) (null mouse-avoidance-mode))
(and mode (> (prefix-numeric-value mode) 0)))
- (add-hook 'post-command-idle-hook 'mouse-avoidance-banish-hook)
+ (setq mouse-avoidance-timer
+ (run-with-idle-timer 0.1 t 'mouse-avoidance-banish-hook))
(setq mouse-avoidance-mode 'banish))
(t (setq mouse-avoidance-mode nil)))
(force-mode-line-update))