diff options
author | Po Lu <luangruo@yahoo.com> | 2024-02-23 10:18:17 +0800 |
---|---|---|
committer | Po Lu <luangruo@yahoo.com> | 2024-02-23 10:18:17 +0800 |
commit | b868690feff44c7242c942490d1d8bc6d2811fa2 (patch) | |
tree | fcc75a3c8df95f190c835eda8f61a58a0cfceb1f /src/window.c | |
parent | 58ca91fe0723c861d53375f52e5b6dd54a49a2e3 (diff) | |
download | emacs-b868690feff44c7242c942490d1d8bc6d2811fa2.tar.gz |
Fix bug#69140
* src/window.c (grow_mini_window): Don't adjust frame matrices
or force redisplay if the provided window cannot be
resized. (bug#69140)
Diffstat (limited to 'src/window.c')
-rw-r--r-- | src/window.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/window.c b/src/window.c index 565ad00804f..0c84b4f4bf3 100644 --- a/src/window.c +++ b/src/window.c @@ -5380,7 +5380,14 @@ grow_mini_window (struct window *w, int delta) grow = call3 (Qwindow__resize_root_window_vertically, root, make_fixnum (- delta), Qt); - if (FIXNUMP (grow) && window_resize_check (r, false)) + if (FIXNUMP (grow) + /* It might be impossible to resize the window, in which case + calling resize_mini_window_apply will set off an infinite + loop where the redisplay cycle so forced returns to + resize_mini_window, making endless attempts to expand the + minibuffer window to this impossible size. (bug#69140) */ + && XFIXNUM (grow) != 0 + && window_resize_check (r, false)) resize_mini_window_apply (w, -XFIXNUM (grow)); } } |