Handle top margin change in adjust_frame_size

* src/frame.c (adjust_frame_size): Handle case where only
pseudo windows changed height so the top margin has to be
adjusted.
* src/window.c (Fset_window_configuration): Call
adjust_frame_size with inhibit 4.
This commit is contained in:
Martin Rudalics 2019-10-16 11:02:56 +02:00
parent 068b4fce52
commit d68e8495e0
2 changed files with 9 additions and 9 deletions

View file

@ -704,18 +704,17 @@ adjust_frame_size (struct frame *f, int new_width, int new_height, int inhibit,
inhibit_vertical ? Qt : Qnil));
if (FRAME_TERMINAL (f)->set_window_size_hook)
FRAME_TERMINAL (f)->set_window_size_hook (f,
0,
new_text_width,
new_text_height,
1);
FRAME_TERMINAL (f)->set_window_size_hook
(f, 0, new_text_width, new_text_height, 1);
f->resized_p = true;
return;
}
#endif
if (new_text_width == old_text_width
if ((XWINDOW (FRAME_ROOT_WINDOW (f))->pixel_top
== FRAME_TOP_MARGIN_HEIGHT (f))
&& new_text_width == old_text_width
&& new_text_height == old_text_height
&& new_windows_width == old_windows_width
&& new_windows_height == old_windows_height

View file

@ -7129,10 +7129,11 @@ the return value is nil. Otherwise the value is t. */)
if (NILP (leaf_windows[i]->contents))
free_window_matrices (leaf_windows[i]);
/* Allow set_window_size_hook again and apply frame size changes
if needed. */
/* Allow set_window_size_hook again and resize frame's windows
if necessary. But change frame size only to preserve window
minimum sizes. */
f->can_set_window_size = true;
adjust_frame_size (f, -1, -1, 1, false, Qset_window_configuration);
adjust_frame_size (f, -1, -1, 4, false, Qset_window_configuration);
adjust_frame_glyphs (f);
unblock_input ();