From: Dan Nicolaescu Date: Fri, 21 Sep 2007 20:19:10 +0000 (+0000) Subject: * xt-mouse.el (xterm-mouse-mode): Re-enable suspend-tty-functions. X-Git-Tag: emacs-pretest-23.0.90~10745 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=23d4cba5c7601c1a3bb3d2c79e535dab8d9adac0;p=emacs.git * 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. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index ef920fda5bb..d81faec84fb 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2007-09-21 Dan Nicolaescu + + * xt-mouse.el (xterm-mouse-mode): Re-enable suspend-tty-functions. + 2007-09-21 Juanma Barranquero * frame.el (suspend-frame): Call `iconify-or-deiconify-frame' also diff --git a/lisp/xt-mouse.el b/lisp/xt-mouse.el index 49f1886f878..15aebb08ab2 100644 --- a/lisp/xt-mouse.el +++ b/lisp/xt-mouse.el @@ -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) diff --git a/src/ChangeLog b/src/ChangeLog index 5e31ba344fd..3d3b64588e3 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2007-09-21 Dan Nicolaescu + + * term.c (Fsuspend_tty): Run suspend-tty-functions before cleaning + up the tty state. + 2007-09-21 Stefan Monnier * termhooks.h (term_gpm): Delete. Use gpm_tty's NULLness instead. diff --git a/src/term.c b/src/term.c index 160e387e98d..be3430574f7 100644 --- a/src/term.c +++ b/src/term.c @@ -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. */