diff options
| author | Eli Zaretskii | 2016-03-29 20:38:54 +0300 |
|---|---|---|
| committer | Eli Zaretskii | 2016-03-29 20:38:54 +0300 |
| commit | 06495c96ae0f5a0fa1d56f47750624138f80cb94 (patch) | |
| tree | 6bcc48627f3833b1dc26eb972e96920b444c3013 /src | |
| parent | f99b51295b86770e4b16d4717c0e73049191c4c5 (diff) | |
| download | emacs-06495c96ae0f5a0fa1d56f47750624138f80cb94.tar.gz emacs-06495c96ae0f5a0fa1d56f47750624138f80cb94.zip | |
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)
Diffstat (limited to 'src')
| -rw-r--r-- | src/xdisp.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/xdisp.c b/src/xdisp.c index d701306b22c..5be94f0cd07 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -17082,7 +17082,16 @@ redisplay_window (Lisp_Object window, bool just_this_one_p) | |||
| 17082 | ignore_mouse_drag_p = true; | 17082 | ignore_mouse_drag_p = true; |
| 17083 | #endif | 17083 | #endif |
| 17084 | } | 17084 | } |
| 17085 | ptrdiff_t count1 = SPECPDL_INDEX (); | ||
| 17086 | /* x_consider_frame_title calls select-frame, which calls | ||
| 17087 | resize_mini_window, which could resize the mini-window and by | ||
| 17088 | that undo the effect of this redisplay cycle wrt minibuffer | ||
| 17089 | and echo-area display. Binding inhibit-redisplay to t makes | ||
| 17090 | the call to resize_mini_window a no-op, thus avoiding the | ||
| 17091 | adverse side effects. */ | ||
| 17092 | specbind (Qinhibit_redisplay, Qt); | ||
| 17085 | x_consider_frame_title (w->frame); | 17093 | x_consider_frame_title (w->frame); |
| 17094 | unbind_to (count1, Qnil); | ||
| 17086 | #endif | 17095 | #endif |
| 17087 | } | 17096 | } |
| 17088 | 17097 | ||