]> git.eshelyaron.com Git - emacs.git/commitdiff
* xt-mouse.el (xterm-mouse-mode): Re-enable suspend-tty-functions.
authorDan Nicolaescu <dann@ics.uci.edu>
Fri, 21 Sep 2007 20:19:10 +0000 (20:19 +0000)
committerDan Nicolaescu <dann@ics.uci.edu>
Fri, 21 Sep 2007 20:19:10 +0000 (20:19 +0000)
* term.c (Fsuspend_tty): Run suspend-tty-functions before cleaning
up the tty state.

lisp/ChangeLog
lisp/xt-mouse.el
src/ChangeLog
src/term.c

index ef920fda5bb70f3fe0a82395c54174234f85721c..d81faec84fbd7bb36b325a5ff2db9c72ab483b5b 100644 (file)
@@ -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
index 49f1886f8784b6f06154f39b18c7a8785b4740ef..15aebb08ab262bf78b4f6f7b7d014879bce35b2b 100644 (file)
@@ -214,15 +214,8 @@ down the SHIFT key while pressing the mouse button."
        (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 @@ down the SHIFT key while pressing the mouse button."
     (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)
index 5e31ba344fdec8719bf16a626eda09c119bde140..3d3b64588e37da067f0c6f0bb2d11347084da7f4 100644 (file)
@@ -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.
index 160e387e98dbf0514e2995c90e79d86c1757af47..be3430574f72cf4e53963f3e99602fb348c44286 100644 (file)
@@ -2244,6 +2244,17 @@ A suspended tty may be resumed by calling `resume-tty' on it.  */)
   
   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 @@ A suspended tty may be resumed by calling `resume-tty' on it.  */)
       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.  */