changeset 93371:b6fc476e0627

(xterm-mouse-mode): Use delete-terminal-functions. (xterm-mouse-handle-delete-frame): Delete.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Sat, 29 Mar 2008 02:15:56 +0000
parents eaf6138f43e7
children ed15c3f99e18
files lisp/ChangeLog lisp/xt-mouse.el
diffstat 2 files changed, 15 insertions(+), 28 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Sat Mar 29 02:06:31 2008 +0000
+++ b/lisp/ChangeLog	Sat Mar 29 02:15:56 2008 +0000
@@ -1,5 +1,8 @@
 2008-03-29  Stefan Monnier  <monnier@iro.umontreal.ca>
 
+	* xt-mouse.el (xterm-mouse-mode): Use delete-terminal-functions.
+	(xterm-mouse-handle-delete-frame): Delete.
+
 	* term/xterm.el (terminal-init-xterm): Use delete-terminal-functions.
 	(xterm-turn-on-modify-other-keys, xterm-turn-off-modify-other-keys)
 	(xterm-remove-modify-other-keys): Lookup terminal rather than frame
--- a/lisp/xt-mouse.el	Sat Mar 29 02:06:31 2008 +0000
+++ b/lisp/xt-mouse.el	Sat Mar 29 02:15:56 2008 +0000
@@ -205,34 +205,24 @@
 mouse functionality for such clicks is still available by holding
 down the SHIFT key while pressing the mouse button."
   :global t :group 'mouse
+  (let ((do-hook (if xterm-mouse-mode 'add-hook 'remove-hook)))
+    (funcall do-hook 'terminal-init-xterm-hook
+             'turn-on-xterm-mouse-tracking-on-terminal)
+    (funcall do-hook 'delete-terminal-functions
+             'turn-off-xterm-mouse-tracking-on-terminal)
+    (funcall do-hook 'suspend-tty-functions
+             'turn-off-xterm-mouse-tracking-on-terminal)
+    (funcall do-hook 'resume-tty-functions
+             'turn-on-xterm-mouse-tracking-on-terminal)
+    (funcall do-hook 'suspend-hook 'turn-off-xterm-mouse-tracking)
+    (funcall do-hook 'suspend-resume-hook 'turn-on-xterm-mouse-tracking)
+    (funcall do-hook 'kill-emacs-hook 'turn-off-xterm-mouse-tracking))
   (if xterm-mouse-mode
       ;; Turn it on
       (progn
-	;; Frame creation and deletion.
-        (add-hook 'terminal-init-xterm-hook
-                  'turn-on-xterm-mouse-tracking-on-terminal)
-
-	(add-hook 'delete-frame-functions 'xterm-mouse-handle-delete-frame)
-	
-	;; Restore normal mouse behaviour outside Emacs.
-        (add-hook 'suspend-tty-functions
-		  'turn-off-xterm-mouse-tracking-on-terminal)
-	(add-hook 'resume-tty-functions
-		  'turn-on-xterm-mouse-tracking-on-terminal)
-	(add-hook 'suspend-hook 'turn-off-xterm-mouse-tracking)
-	(add-hook 'suspend-resume-hook 'turn-on-xterm-mouse-tracking)
-	(add-hook 'kill-emacs-hook 'turn-off-xterm-mouse-tracking)
 	(setq mouse-position-function #'xterm-mouse-position-function)
 	(turn-on-xterm-mouse-tracking))
     ;; Turn it off
-    (remove-hook 'delete-frame-functions 'xterm-mouse-handle-delete-frame)
-    (remove-hook 'suspend-tty-functions 
-		 'turn-off-xterm-mouse-tracking-on-terminal)
-    (remove-hook 'resume-tty-functions 
-		 'turn-on-xterm-mouse-tracking-on-terminal)
-    (remove-hook 'suspend-hook 'turn-off-xterm-mouse-tracking)
-    (remove-hook 'suspend-resume-hook 'turn-on-xterm-mouse-tracking)
-    (remove-hook 'kill-emacs-hook 'turn-off-xterm-mouse-tracking)
     (turn-off-xterm-mouse-tracking 'force)
     (setq mouse-position-function nil)))
 
@@ -269,12 +259,6 @@
     ;; pass by untranslated).
     (send-string-to-terminal "\e[?1000l" terminal)))
 
-(defun xterm-mouse-handle-delete-frame (frame)
-  "Turn off xterm mouse tracking if FRAME is the last frame on its device."
-  (when (and (eq t (frame-live-p frame))
-	     (<= 1 (length (frames-on-display-list (frame-terminal frame)))))
-    (turn-off-xterm-mouse-tracking-on-terminal frame)))
-
 (provide 'xt-mouse)
 
 ;; arch-tag: 84962d4e-fae9-4c13-a9d7-ef4925a4ac03