Function: mouse-avoidance-nudge-mouse
mouse-avoidance-nudge-mouse is a byte-compiled function defined in
avoid.el.gz.
Signature
(mouse-avoidance-nudge-mouse)
Documentation
Push the mouse a little way away, possibly animating the move.
For these modes, state keeps track of the total offset that we've accumulated, and tries to keep it close to zero.
Source Code
;; Defined in /usr/src/emacs/lisp/avoid.el.gz
(defun mouse-avoidance-nudge-mouse ()
"Push the mouse a little way away, possibly animating the move.
For these modes, state keeps track of the total offset that we've
accumulated, and tries to keep it close to zero."
(let* ((cur (mouse-position))
(cur-pos (cdr cur))
(pos (window-edges))
(wleft (pop pos))
(wtop (pop pos))
(wright (pop pos))
(wbot (pop pos))
(deltax (mouse-avoidance-delta
(car cur-pos) (- (random mouse-avoidance-nudge-var)
(car mouse-avoidance-state))
mouse-avoidance-nudge-dist mouse-avoidance-nudge-var
wleft (1- wright)))
(deltay (mouse-avoidance-delta
(cdr cur-pos) (- (random mouse-avoidance-nudge-var)
(cdr mouse-avoidance-state))
mouse-avoidance-nudge-dist mouse-avoidance-nudge-var
wtop (1- wbot))))
(setq mouse-avoidance-state
(cons (+ (car mouse-avoidance-state) deltax)
(+ (cdr mouse-avoidance-state) deltay)))
(if (or (eq mouse-avoidance-mode 'animate)
(eq mouse-avoidance-mode 'proteus))
(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 incr))
(if (eq mouse-avoidance-mode 'proteus)
(mouse-avoidance-set-pointer-shape
(mouse-avoidance-random-shape)))
(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))))))