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))))))