diff options
| author | Noam Postavsky | 2018-05-03 20:54:25 -0400 |
|---|---|---|
| committer | Noam Postavsky | 2018-05-03 20:58:06 -0400 |
| commit | b90ce66d32ede14a9191008096e596f6dfb9a48b (patch) | |
| tree | aeed5d19776a2a56a3d84c99f46013f5b4b52e02 | |
| parent | 79ad0b3b2d4313d85e3fa1ff1e8658637bea43e2 (diff) | |
| download | emacs-b90ce66d32ede14a9191008096e596f6dfb9a48b.tar.gz emacs-b90ce66d32ede14a9191008096e596f6dfb9a48b.zip | |
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.
| -rw-r--r-- | src/xdisp.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/xdisp.c b/src/xdisp.c index fb6729c36aa..d6aabd06189 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -13924,11 +13924,6 @@ redisplay_internal (void) | |||
| 13924 | /* Notice any pending interrupt request to change frame size. */ | 13924 | /* Notice any pending interrupt request to change frame size. */ |
| 13925 | do_pending_window_change (true); | 13925 | do_pending_window_change (true); |
| 13926 | 13926 | ||
| 13927 | /* do_pending_window_change could change the selected_window due to | ||
| 13928 | frame resizing which makes the selected window too small. */ | ||
| 13929 | if (WINDOWP (selected_window) && (w = XWINDOW (selected_window)) != sw) | ||
| 13930 | sw = w; | ||
| 13931 | |||
| 13932 | /* Clear frames marked as garbaged. */ | 13927 | /* Clear frames marked as garbaged. */ |
| 13933 | clear_garbaged_frames (); | 13928 | clear_garbaged_frames (); |
| 13934 | 13929 | ||
| @@ -13936,6 +13931,13 @@ redisplay_internal (void) | |||
| 13936 | if (NILP (Vmemory_full)) | 13931 | if (NILP (Vmemory_full)) |
| 13937 | prepare_menu_bars (); | 13932 | prepare_menu_bars (); |
| 13938 | 13933 | ||
| 13934 | /* do_pending_window_change could change the selected_window due to | ||
| 13935 | frame resizing which makes the selected window too small. | ||
| 13936 | prepare_menu_bars may call lisp hooks and hence also change the | ||
| 13937 | selected_window. */ | ||
| 13938 | if (WINDOWP (selected_window) && (w = XWINDOW (selected_window)) != sw) | ||
| 13939 | sw = w; | ||
| 13940 | |||
| 13939 | reconsider_clip_changes (w); | 13941 | reconsider_clip_changes (w); |
| 13940 | 13942 | ||
| 13941 | /* In most cases selected window displays current buffer. */ | 13943 | /* In most cases selected window displays current buffer. */ |