From b1bac16eadc78ea3c72626f651d53f17065dcd0a Mon Sep 17 00:00:00 2001 From: Martin Rudalics Date: Tue, 24 Apr 2012 10:56:31 +0200 Subject: [PATCH] Don't clear echo area prematurely when handling select window events (Bug#11304). * keyboard.c (read_char): Don't wipe echo area for select window events: These might get delayed via `mouse-autoselect-window' (Bug#11304). * window.el (handle-select-window): Clear echo area since this is no more done by read_char (Bug#11304). --- lisp/ChangeLog | 5 +++++ lisp/window.el | 2 ++ src/ChangeLog | 6 ++++++ src/keyboard.c | 5 ++++- 4 files changed, 17 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 848fc434956..1b5c9d75e9e 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2012-04-24 Martin Rudalics + + * window.el (handle-select-window): Clear echo area since this is + no more done by read_char (Bug#11304). + 2012-04-24 Stefan Monnier * ibuffer.el (ibuffer-mode-map): Bind `/ m' to filter-used-mode diff --git a/lisp/window.el b/lisp/window.el index c148f5ee01f..b8f1bf3456d 100644 --- a/lisp/window.el +++ b/lisp/window.el @@ -5727,6 +5727,8 @@ is active. This function is run by `mouse-autoselect-window-timer'." (setq mouse-autoselect-window-state nil) ;; Run `mouse-leave-buffer-hook' when autoselecting window. (run-hooks 'mouse-leave-buffer-hook)) + ;; Clear echo area. + (message nil) (select-window window)))) (defun truncated-partial-width-window-p (&optional window) diff --git a/src/ChangeLog b/src/ChangeLog index 30ba6d6c4a9..3fccf8cc439 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2012-04-24 Martin Rudalics + + * keyboard.c (read_char): Don't wipe echo area for select window + events: These might get delayed via `mouse-autoselect-window' + (Bug#11304). + 2012-04-24 Juanma Barranquero * gnutls.c (init_gnutls_functions): Protect against (unlikely) diff --git a/src/keyboard.c b/src/keyboard.c index 614746e35b2..48b31d8b564 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -2984,7 +2984,10 @@ read_char (int commandflag, ptrdiff_t nmaps, Lisp_Object *maps, own stuff with the echo area. */ if (!CONSP (c) || (!(EQ (Qhelp_echo, XCAR (c))) - && !(EQ (Qswitch_frame, XCAR (c))))) + && !(EQ (Qswitch_frame, XCAR (c))) + /* Don't wipe echo area for select window events: These might + get delayed via `mouse-autoselect-window' (Bug#11304). */ + && !(EQ (Qselect_window, XCAR (c))))) { if (!NILP (echo_area_buffer[0])) safe_run_hooks (Qecho_area_clear_hook); -- 2.11.4.GIT