emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs-25 06495c9: Fix rare problems with echo-area display


From: Eli Zaretskii
Subject: [Emacs-diffs] emacs-25 06495c9: Fix rare problems with echo-area display and multiple frames
Date: Tue, 29 Mar 2016 17:40:18 +0000

branch: emacs-25
commit 06495c96ae0f5a0fa1d56f47750624138f80cb94
Author: Eli Zaretskii <address@hidden>
Commit: Eli Zaretskii <address@hidden>

    Fix rare problems with echo-area display and multiple frames
    
    * src/xdisp.c (redisplay_window): Bind inhibit-redisplay non-nil
    around the call to x_consider_frame_title, to prevent
    resize_mini_window from undoing echo-area display.  (Bug#23124)
---
 src/xdisp.c |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/src/xdisp.c b/src/xdisp.c
index d701306..5be94f0 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -17082,7 +17082,16 @@ redisplay_window (Lisp_Object window, bool 
just_this_one_p)
            ignore_mouse_drag_p = true;
 #endif
         }
+      ptrdiff_t count1 = SPECPDL_INDEX ();
+      /* x_consider_frame_title calls select-frame, which calls
+        resize_mini_window, which could resize the mini-window and by
+        that undo the effect of this redisplay cycle wrt minibuffer
+        and echo-area display.  Binding inhibit-redisplay to t makes
+        the call to resize_mini_window a no-op, thus avoiding the
+        adverse side effects.  */
+      specbind (Qinhibit_redisplay, Qt);
       x_consider_frame_title (w->frame);
+      unbind_to (count1, Qnil);
 #endif
     }
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]