changeset 72334:872d10db66d6

* 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.
author Chong Yidong <cyd@stupidchicken.com>
date Thu, 10 Aug 2006 03:37:29 +0000
parents 7190203780ce
children d6694b6039c1
files lisp/ChangeLog lisp/avoid.el
diffstat 2 files changed, 24 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Wed Aug 09 19:10:13 2006 +0000
+++ b/lisp/ChangeLog	Thu Aug 10 03:37:29 2006 +0000
@@ -1,3 +1,12 @@
+2006-08-09  Chong Yidong  <cyd@stupidchicken.com>
+
+	* 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.
+
 2006-08-09  John Wiegley  <johnw@newartisans.com>
 
 	* calendar/timeclock.el (timeclock-use-elapsed): Added a new
--- a/lisp/avoid.el	Wed Aug 09 19:10:13 2006 +0000
+++ b/lisp/avoid.el	Thu Aug 10 03:37:29 2006 +0000
@@ -124,6 +124,7 @@
 (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 @@
 		(+ (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 @@
 		   (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 @@
 	       ;; 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 @@
 	     (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 @@
 	     (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))