]> git.eshelyaron.com Git - emacs.git/commitdiff
Handle selected_window change in prepare_menu_bars (Bug#31312)
authorNoam Postavsky <npostavs@gmail.com>
Fri, 4 May 2018 00:54:25 +0000 (20:54 -0400)
committerNoam Postavsky <npostavs@gmail.com>
Fri, 4 May 2018 00:58:06 +0000 (20:58 -0400)
* src/xdisp.c (redisplay_internal): Check selected_window after
calling prepare_menu_bars, since it can call lisp hooks.

src/xdisp.c

index fb6729c36aa2a90f50ee578bbd2050b4e96d7c71..d6aabd06189c90bff56ad6b95ae4bfbb0bedd3da 100644 (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.  */