diff options
author | Richard M. Stallman <rms@gnu.org> | 1997-08-12 18:20:00 +0000 |
---|---|---|
committer | Richard M. Stallman <rms@gnu.org> | 1997-08-12 18:20:00 +0000 |
commit | 92c1f8ac31c7d3e67971e165431d540ec010e3ac (patch) | |
tree | b78d245f225392ab734e1d24c239e0e2b8acd1bb /lisp/avoid.el | |
parent | c4121c6f8717f911c77fc3b9d1491e4ca2039556 (diff) | |
download | emacs-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.el | 18 |
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)) |