Handle selected_window change in prepare_menu_bars (Bug#31312)

* src/xdisp.c (redisplay_internal): Check selected_window after
calling prepare_menu_bars, since it can call lisp hooks.
This commit is contained in:
Noam Postavsky 2018-05-03 20:54:25 -04:00
parent 79ad0b3b2d
commit b90ce66d32

View file

@ -13924,11 +13924,6 @@ redisplay_internal (void)
/* Notice any pending interrupt request to change frame size. */
do_pending_window_change (true);
/* do_pending_window_change could change the selected_window due to
frame resizing which makes the selected window too small. */
if (WINDOWP (selected_window) && (w = XWINDOW (selected_window)) != sw)
sw = w;
/* Clear frames marked as garbaged. */
clear_garbaged_frames ();
@ -13936,6 +13931,13 @@ redisplay_internal (void)
if (NILP (Vmemory_full))
prepare_menu_bars ();
/* do_pending_window_change could change the selected_window due to
frame resizing which makes the selected window too small.
prepare_menu_bars may call lisp hooks and hence also change the
selected_window. */
if (WINDOWP (selected_window) && (w = XWINDOW (selected_window)) != sw)
sw = w;
reconsider_clip_changes (w);
/* In most cases selected window displays current buffer. */