diff options
| author | Richard M. Stallman | 1997-08-12 18:20:00 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 1997-08-12 18:20:00 +0000 |
| commit | 85c922901f4187472ebd99f2c2b26e63467bcfa2 (patch) | |
| tree | 1976ee1802e0de7e5e7be17fbfa9cdaa50874a6d /lisp/avoid.el | |
| parent | a1bf98fa223ddafc0421c3200f7600e972c304e9 (diff) | |
| download | emacs-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.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'." | |||
| 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)) |