mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-06 06:20:55 -08:00
* avoid.el (mouse-avoidance-animating-pointer): New var.
(mouse-avoidance-nudge-mouse): Use it. (mouse-avoidance-banish): Rename from mouse-avoidance-banish-hook. (mouse-avoidance-exile): Rename from mouse-avoidance-exile-hook (mouse-avoidance-fancy): Rename from mouse-avoidance-fancy-hook. Don't activate if currently animating. All callers changed.
This commit is contained in:
parent
541a0de1e2
commit
38ceb48f7f
2 changed files with 24 additions and 10 deletions
|
|
@ -124,6 +124,7 @@ Only applies in mouse-avoidance-modes `animate' and `jump'."
|
|||
(defvar mouse-avoidance-pointer-shapes nil)
|
||||
(defvar mouse-avoidance-n-pointer-shapes 0)
|
||||
(defvar mouse-avoidance-old-pointer-shape nil)
|
||||
(defvar mouse-avoidance-animating-pointer nil)
|
||||
|
||||
;; This timer is used to run something when Emacs is idle.
|
||||
(defvar mouse-avoidance-timer nil)
|
||||
|
|
@ -243,16 +244,19 @@ You can redefine this if you want the mouse banished to a different corner."
|
|||
(+ (cdr mouse-avoidance-state) deltay)))
|
||||
(if (or (eq mouse-avoidance-mode 'animate)
|
||||
(eq mouse-avoidance-mode 'proteus))
|
||||
(let ((i 0.0))
|
||||
(let ((i 0.0)
|
||||
(incr (max .1 (/ 1.0 mouse-avoidance-nudge-dist))))
|
||||
(setq mouse-avoidance-animating-pointer t)
|
||||
(while (<= i 1)
|
||||
(mouse-avoidance-set-mouse-position
|
||||
(cons (+ (car cur-pos) (round (* i deltax)))
|
||||
(+ (cdr cur-pos) (round (* i deltay)))))
|
||||
(setq i (+ i (max .1 (/ 1.0 mouse-avoidance-nudge-dist))))
|
||||
(setq i (+ i incr))
|
||||
(if (eq mouse-avoidance-mode 'proteus)
|
||||
(mouse-avoidance-set-pointer-shape
|
||||
(mouse-avoidance-random-shape)))
|
||||
(sit-for mouse-avoidance-animation-delay)))
|
||||
(sit-for mouse-avoidance-animation-delay))
|
||||
(setq mouse-avoidance-animating-pointer nil))
|
||||
(mouse-avoidance-set-mouse-position (cons (+ (car (cdr cur)) deltax)
|
||||
(+ (cdr (cdr cur)) deltay))))))
|
||||
|
||||
|
|
@ -294,11 +298,11 @@ redefine this function to suit your own tastes."
|
|||
(memq 'drag modifiers)
|
||||
(memq 'down modifiers)))))))
|
||||
|
||||
(defun mouse-avoidance-banish-hook ()
|
||||
(defun mouse-avoidance-banish ()
|
||||
(if (not (mouse-avoidance-ignore-p))
|
||||
(mouse-avoidance-banish-mouse)))
|
||||
|
||||
(defun mouse-avoidance-exile-hook ()
|
||||
(defun mouse-avoidance-exile ()
|
||||
;; For exile mode, the state is nil when the mouse is in its normal
|
||||
;; position, and set to the old mouse-position when the mouse is in exile.
|
||||
(if (not (mouse-avoidance-ignore-p))
|
||||
|
|
@ -317,9 +321,10 @@ redefine this function to suit your own tastes."
|
|||
;; but clear state anyway, to be ready for another move
|
||||
(setq mouse-avoidance-state nil))))))
|
||||
|
||||
(defun mouse-avoidance-fancy-hook ()
|
||||
(defun mouse-avoidance-fancy ()
|
||||
;; Used for the "fancy" modes, ie jump et al.
|
||||
(if (and (not (mouse-avoidance-ignore-p))
|
||||
(if (and (not mouse-avoidance-animating-pointer)
|
||||
(not (mouse-avoidance-ignore-p))
|
||||
(mouse-avoidance-too-close-p (mouse-position)))
|
||||
(let ((old-pos (mouse-position)))
|
||||
(mouse-avoidance-nudge-mouse)
|
||||
|
|
@ -375,14 +380,14 @@ definition of \"random distance\".)"
|
|||
(eq mode 'animate)
|
||||
(eq mode 'proteus))
|
||||
(setq mouse-avoidance-timer
|
||||
(run-with-idle-timer 0.1 t 'mouse-avoidance-fancy-hook))
|
||||
(run-with-idle-timer 0.1 t 'mouse-avoidance-fancy))
|
||||
(setq mouse-avoidance-mode mode
|
||||
mouse-avoidance-state (cons 0 0)
|
||||
mouse-avoidance-old-pointer-shape
|
||||
(and (boundp 'x-pointer-shape) x-pointer-shape)))
|
||||
((eq mode 'exile)
|
||||
(setq mouse-avoidance-timer
|
||||
(run-with-idle-timer 0.1 t 'mouse-avoidance-exile-hook))
|
||||
(run-with-idle-timer 0.1 t 'mouse-avoidance-exile))
|
||||
(setq mouse-avoidance-mode mode
|
||||
mouse-avoidance-state nil))
|
||||
((or (eq mode 'banish)
|
||||
|
|
@ -390,7 +395,7 @@ definition of \"random distance\".)"
|
|||
(and (null mode) (null mouse-avoidance-mode))
|
||||
(and mode (> (prefix-numeric-value mode) 0)))
|
||||
(setq mouse-avoidance-timer
|
||||
(run-with-idle-timer 0.1 t 'mouse-avoidance-banish-hook))
|
||||
(run-with-idle-timer 0.1 t 'mouse-avoidance-banish))
|
||||
(setq mouse-avoidance-mode 'banish))
|
||||
(t (setq mouse-avoidance-mode nil)))
|
||||
(force-mode-line-update))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue