Subject: bug#53839: 29.0.50; Strange bug causes tool bar to be overwritten

From: martin rudalics <[email-masked]>
Date: Mon, 7 Feb 2022 16:49:57 +0100

> FWIW, the window manager I used to test was GNOME Shell.

Then the reason is what I told you earlier: In x_wm_set_size_hint in
xterm.c I have

#ifndef USE_GTK
void
x_wm_set_size_hint (struct frame *f, long flags, bool user_position, bool base_size)
{
   XSizeHints size_hints;
   Window window = FRAME_OUTER_WINDOW (f);

   if (!window)
     return;

   /* 2021 REMIX: Don't call widget_update_wm_size_hints here since on
      GNOME shell get_wm_shell may fail to produce the wmshell widget.
      As a consequence, no size hints get set before we issue our resize
      request, mutter (presumably) refuses to resize the outer window as
      requested and we end up with a wrong initial frame size.

      It's not clear whether other calls of update_wm_hints are affected
      as well but not calling widget_update_wm_size_hints here seems
      sufficient to fix the bug.  */

/** #ifdef USE_X_TOOLKIT **/
/**   if (f->output_data.x->widget) **/
/**     { **/
/**       widget_update_wm_size_hints (f->output_data.x->widget); **/
/**       return; **/
/**     } **/
/** #endif **/

   /* Setting PMaxSize caused various problems.  */

...

which works around that problem.  (I didn't try your fix but am
convinced that it gets the initial frame height wrong.)

martin