Subject: bug#31968: 26.1.50; Allow to hide title bar on maximize (gtk/gnome/csd)

From: martin rudalics <[email-masked]>
Date: Mon, 02 Jul 2018 11:13:01 +0200

> Under Cinnamon it worked without flickering.

Thanks.  But please post your code here so we know what we are
discussing.

 > There is just a minor
 > problem that could be pointing to a bug elsewhere in emacs. Cinnamon
 > implements a progression of tiles layouts, for instance starting from
 > a normal sized window (i) you press Super-Up and the window is tiled
 > to the top half of the screen, (ii) you then press Super-Up again and
 > the window is maximized, (iii) finally you press Super-Down and the
 > window returns to top half tile mode. In general only fully maximized
 > windows (ii) gets undecorated, as intended, but when transitioning
 > from fully maximized to top half tiled (ii->iii) emacs still sees the
 > maximized state in the fullscreen frame parameter and fails to
 > undecorate the window. Nevertheless the client state in (ii) is:
 >
 > ~:: xprop | grep _NET_WM_STATE
 > _NET_WM_STATE(ATOM) = _NET_WM_STATE_MAXIMIZED_VERT, _NET_WM_STATE_TILED
 >
 > The problem seems to be in the reported frame parameters, not in
 > Jonathan's hook.

get_current_wm_state in xterm.c has this

       else if (a == dpyinfo->Xatom_net_wm_state_maximized_vert)
         {
           if (*size_state == FULLSCREEN_WIDTH)
             *size_state = FULLSCREEN_MAXIMIZED;
           else
             *size_state = FULLSCREEN_HEIGHT;
         }

Could you try setting a GDB breakpoint at the

           if (*size_state == FULLSCREEN_WIDTH)

line and see if it ever gets executed during (ii->iii).

Thanks for trying, martin