From 146df8458679fd5043ce585655dadf03a5f152b2 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Sat, 29 Mar 2008 02:15:56 +0000 Subject: [PATCH] (xterm-mouse-mode): Use delete-terminal-functions. (xterm-mouse-handle-delete-frame): Delete. --- lisp/ChangeLog | 3 +++ lisp/xt-mouse.el | 40 ++++++++++++---------------------------- 2 files changed, 15 insertions(+), 28 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 972aa057d18..c7dc80a6d65 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,8 @@ 2008-03-29 Stefan Monnier + * 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 diff --git a/lisp/xt-mouse.el b/lisp/xt-mouse.el index 5f8d8ca61db..ea0adc3c8a5 100644 --- a/lisp/xt-mouse.el +++ b/lisp/xt-mouse.el @@ -205,34 +205,24 @@ single clicks are supported. When turned on, the normal xterm 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 @@ down the SHIFT key while pressing the mouse button." ;; 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 -- 2.39.2