summaryrefslogtreecommitdiff
path: root/src/window.c
diff options
context:
space:
mode:
authorPo Lu <luangruo@yahoo.com>2024-02-23 10:18:17 +0800
committerPo Lu <luangruo@yahoo.com>2024-02-23 10:18:17 +0800
commitb868690feff44c7242c942490d1d8bc6d2811fa2 (patch)
treefcc75a3c8df95f190c835eda8f61a58a0cfceb1f /src/window.c
parent58ca91fe0723c861d53375f52e5b6dd54a49a2e3 (diff)
downloademacs-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.c9
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));
}
}