aboutsummaryrefslogtreecommitdiffstats
path: root/lisp/avoid.el
diff options
context:
space:
mode:
authorRichard M. Stallman1997-08-12 18:20:00 +0000
committerRichard M. Stallman1997-08-12 18:20:00 +0000
commit85c922901f4187472ebd99f2c2b26e63467bcfa2 (patch)
tree1976ee1802e0de7e5e7be17fbfa9cdaa50874a6d /lisp/avoid.el
parenta1bf98fa223ddafc0421c3200f7600e972c304e9 (diff)
downloademacs-85c922901f4187472ebd99f2c2b26e63467bcfa2.tar.gz
emacs-85c922901f4187472ebd99f2c2b26e63467bcfa2.zip
(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'."
111(defvar mouse-avoidance-n-pointer-shapes 0) 111(defvar mouse-avoidance-n-pointer-shapes 0)
112(defvar mouse-avoidance-old-pointer-shape nil) 112(defvar mouse-avoidance-old-pointer-shape nil)
113 113
114;; This timer is used to run something when Emacs is idle.
115(defvar mouse-avoidance-timer nil)
116
114;;; Functions: 117;;; Functions:
115 118
116(defsubst mouse-avoidance-set-pointer-shape (shape) 119(defsubst mouse-avoidance-set-pointer-shape (shape)
@@ -335,9 +338,9 @@ definition of \"random distance\".)"
335 nil t)))) 338 nil t))))
336 (if (eq mode 'cat-and-mouse) 339 (if (eq mode 'cat-and-mouse)
337 (setq mode 'animate)) 340 (setq mode 'animate))
338 (remove-hook 'post-command-idle-hook 'mouse-avoidance-banish-hook) 341 (if mouse-avoidance-timer
339 (remove-hook 'post-command-idle-hook 'mouse-avoidance-exile-hook) 342 (cancel-timer mouse-avoidance-timer))
340 (remove-hook 'post-command-idle-hook 'mouse-avoidance-fancy-hook) 343 (setq mouse-avoidance-timer nil)
341 344
342 ;; Restore pointer shape if necessary 345 ;; Restore pointer shape if necessary
343 (if (eq mouse-avoidance-mode 'proteus) 346 (if (eq mouse-avoidance-mode 'proteus)
@@ -349,19 +352,22 @@ definition of \"random distance\".)"
349 ((or (eq mode 'jump) 352 ((or (eq mode 'jump)
350 (eq mode 'animate) 353 (eq mode 'animate)
351 (eq mode 'proteus)) 354 (eq mode 'proteus))
352 (add-hook 'post-command-idle-hook 'mouse-avoidance-fancy-hook) 355 (setq mouse-avoidance-timer
356 (run-with-idle-timer 0.1 t 'mouse-avoidance-fancy-hook))
353 (setq mouse-avoidance-mode mode 357 (setq mouse-avoidance-mode mode
354 mouse-avoidance-state (cons 0 0) 358 mouse-avoidance-state (cons 0 0)
355 mouse-avoidance-old-pointer-shape x-pointer-shape)) 359 mouse-avoidance-old-pointer-shape x-pointer-shape))
356 ((eq mode 'exile) 360 ((eq mode 'exile)
357 (add-hook 'post-command-idle-hook 'mouse-avoidance-exile-hook) 361 (setq mouse-avoidance-timer
362 (run-with-idle-timer 0.1 t 'mouse-avoidance-exile-hook))
358 (setq mouse-avoidance-mode mode 363 (setq mouse-avoidance-mode mode
359 mouse-avoidance-state nil)) 364 mouse-avoidance-state nil))
360 ((or (eq mode 'banish) 365 ((or (eq mode 'banish)
361 (eq mode t) 366 (eq mode t)
362 (and (null mode) (null mouse-avoidance-mode)) 367 (and (null mode) (null mouse-avoidance-mode))
363 (and mode (> (prefix-numeric-value mode) 0))) 368 (and mode (> (prefix-numeric-value mode) 0)))
364 (add-hook 'post-command-idle-hook 'mouse-avoidance-banish-hook) 369 (setq mouse-avoidance-timer
370 (run-with-idle-timer 0.1 t 'mouse-avoidance-banish-hook))
365 (setq mouse-avoidance-mode 'banish)) 371 (setq mouse-avoidance-mode 'banish))
366 (t (setq mouse-avoidance-mode nil))) 372 (t (setq mouse-avoidance-mode nil)))
367 (force-mode-line-update)) 373 (force-mode-line-update))