changeset 84769:cbcb89640ef2

* xt-mouse.el (xterm-mouse-mode): Re-enable suspend-tty-functions. * term.c (Fsuspend_tty): Run suspend-tty-functions before cleaning up the tty state.
author Dan Nicolaescu <dann@ics.uci.edu>
date Fri, 21 Sep 2007 20:19:10 +0000
parents 53194ec05789
children 58d1504f4b02
files lisp/ChangeLog lisp/xt-mouse.el src/ChangeLog src/term.c
diffstat 4 files changed, 24 insertions(+), 19 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Fri Sep 21 17:10:48 2007 +0000
+++ b/lisp/ChangeLog	Fri Sep 21 20:19:10 2007 +0000
@@ -1,3 +1,7 @@
+2007-09-21  Dan Nicolaescu  <dann@ics.uci.edu>
+
+	* xt-mouse.el (xterm-mouse-mode): Re-enable suspend-tty-functions.
+
 2007-09-21  Juanma Barranquero  <lekktu@gmail.com>
 
 	* frame.el (suspend-frame): Call `iconify-or-deiconify-frame' also
--- a/lisp/xt-mouse.el	Fri Sep 21 17:10:48 2007 +0000
+++ b/lisp/xt-mouse.el	Fri Sep 21 20:19:10 2007 +0000
@@ -214,15 +214,8 @@
 	(add-hook 'delete-frame-functions 'xterm-mouse-handle-delete-frame)
 	
 	;; Restore normal mouse behaviour outside Emacs.
-	
-	;; Temporarily disable this hook, it does not work, when
-	;; `suspend-tty' calls `suspend-tty-functions' the tty->output
-	;; is already set to 0 so the 'send-string-to-terminal' call
-	;; in `turn-off-xterm-mouse-tracking-on-terminal' will result
-	;; in a crash.
-        ;; (add-hook 'suspend-tty-functions
-	;;   'turn-off-xterm-mouse-tracking-on-terminal)
-
+        (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)
@@ -234,8 +227,8 @@
     (remove-hook 'after-make-frame-functions 
 		 'turn-on-xterm-mouse-tracking-on-terminal)
     (remove-hook 'delete-frame-functions 'xterm-mouse-handle-delete-frame)
-    ;; (remove-hook 'suspend-tty-functions 
-    ;; 	 'turn-off-xterm-mouse-tracking-on-terminal)
+    (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)
--- a/src/ChangeLog	Fri Sep 21 17:10:48 2007 +0000
+++ b/src/ChangeLog	Fri Sep 21 20:19:10 2007 +0000
@@ -1,3 +1,8 @@
+2007-09-21  Dan Nicolaescu  <dann@ics.uci.edu>
+
+	* term.c (Fsuspend_tty): Run suspend-tty-functions before cleaning
+	up the tty state.
+
 2007-09-21  Stefan Monnier  <monnier@iro.umontreal.ca>
 
 	* termhooks.h (term_gpm): Delete.  Use gpm_tty's NULLness instead.
--- a/src/term.c	Fri Sep 21 17:10:48 2007 +0000
+++ b/src/term.c	Fri Sep 21 20:19:10 2007 +0000
@@ -2244,6 +2244,17 @@
   
   if (f)
     {
+      /* First run `suspend-tty-functions' and then clean up the tty
+	 state because `suspend-tty-functions' might need to change
+	 the tty state.  */
+      if (!NILP (Vrun_hooks))
+        {
+          Lisp_Object args[2];
+          args[0] = intern ("suspend-tty-functions");
+          XSETTERMINAL (args[1], t);
+          Frun_hook_with_args (2, args);
+        }
+
       reset_sys_modes (t->display_info.tty);
 
       delete_keyboard_wait_descriptor (fileno (f));
@@ -2258,14 +2269,6 @@
       if (FRAMEP (t->display_info.tty->top_frame))
         FRAME_SET_VISIBLE (XFRAME (t->display_info.tty->top_frame), 0);
       
-      /* Run `suspend-tty-functions'.  */
-      if (!NILP (Vrun_hooks))
-        {
-          Lisp_Object args[2];
-          args[0] = intern ("suspend-tty-functions");
-          XSETTERMINAL (args[1], t);
-          Frun_hook_with_args (2, args);
-        }
     }
 
   /* Clear display hooks to prevent further output.  */