From 2d2755c3d7b69a11372e8fb8eba3c342cc5f61e8 Mon Sep 17 00:00:00 2001 From: Martin Rudalics Date: Tue, 5 Aug 2025 11:08:38 +0200 Subject: [PATCH] Handle inhibiting implied resizing for frames without initial tool bar * src/xfns.c (x_set_tool_bar_lines, x_change_tool_bar_height) * src/pgtkfns.c (x_change_tool_bar_height) (pgtk_set_tool_bar_lines): Set f->tool_bar_resized to true so inhibiting implied resizing works for frames without initial tool bar too. See the thread https://lists.gnu.org/archive/html/emacs-devel/2025-08/msg00034.html. --- src/pgtkfns.c | 11 ++++++++++- src/xfns.c | 12 +++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/pgtkfns.c b/src/pgtkfns.c index 917c9e7ab67..2cb7f423206 100644 --- a/src/pgtkfns.c +++ b/src/pgtkfns.c @@ -541,6 +541,9 @@ x_change_tool_bar_height (struct frame *f, int height) if (FRAME_EXTERNAL_TOOL_BAR (f)) free_frame_tool_bar (f); FRAME_EXTERNAL_TOOL_BAR (f) = false; + /* Make sure implied resizing of frames without initial tool bar + can be inhibited too. */ + f->tool_bar_resized = true; } } @@ -552,7 +555,13 @@ pgtk_set_tool_bar_lines (struct frame *f, Lisp_Object value, Lisp_Object oldval) /* Treat tool bars like menu bars. */ if (FRAME_MINIBUF_ONLY_P (f)) - return; + { + /* Make sure implied resizing can be inhibited for minibuffer-only + frames too. */ + f->tool_bar_resized = true; + + return; + } /* Use VALUE only if an int >= 0. */ if (RANGED_FIXNUMP (0, value, INT_MAX)) diff --git a/src/xfns.c b/src/xfns.c index c547d45fe3a..e9ca756cc32 100644 --- a/src/xfns.c +++ b/src/xfns.c @@ -1856,7 +1856,14 @@ x_set_tool_bar_lines (struct frame *f, Lisp_Object value, Lisp_Object oldval) /* Treat tool bars like menu bars. */ if (FRAME_MINIBUF_ONLY_P (f)) - return; + { +#ifdef USE_GTK + /* Make sure implied resizing of minibuffer-only frames can be + inhibited too. */ + f->tool_bar_resized = true; +#endif + return; + } /* Use VALUE only if an int >= 0. */ if (RANGED_FIXNUMP (0, value, INT_MAX)) @@ -1888,6 +1895,9 @@ x_change_tool_bar_height (struct frame *f, int height) if (FRAME_EXTERNAL_TOOL_BAR (f)) free_frame_tool_bar (f); FRAME_EXTERNAL_TOOL_BAR (f) = false; + /* Make sure implied resizing of frames without initial tool bar + can be inhibited too. */ + f->tool_bar_resized = true; } #else /* !USE_GTK */ int unit = FRAME_LINE_HEIGHT (f);