Subject: bug#19990: 24.4; Bad resizing interaction when WM ignores size hints

From: Yuri D'Elia <[email-masked]>
Date: Tue, 3 Mar 2015 19:41:02 +0100

On 03/03/2015 06:47 PM, martin rudalics wrote:
>  > I'm using a tiling window manager with the GTK+ port of emacs 24. I
>  > force the emacs frame to take the height of the entire screen.
> 
> How do you do that?

Using awesomewm you can set "size_hints_honor = false".
With spectrwm there's no setting (the size hints are not honored if the
window is tiled, but are if the window is floating).
Xmonad is pretty similar to awesome in this sense (defaults to honor,
but not honoring is common).

>  > I realize this is a very minor issue and ignoring size hints is bad(tm),
>  > but since emacs properly aligns the minibuffer with
>  > toggle-frame-fullscreen in order to fit the screen it shouldn't be hard
>  > to fix.
> 
> What happens when you set `frame-resize-pixelwise' to t?

It does work, but I was wondering if this could be fixed irregardless,
since depending on the setting the hints might be honored or not.

When I put some debugging code in gtkutil.c:xg_frame_resized, it looks
like two resize events are received when the frame is mapped: one with
the real window size, and a second event with the size rounded-down to
the text size. Again, when the frame is focused, a third resize event is
received with the initial size, which causes the frame to render
correctly. This feels odd.

GTK might be trying to resize the window after the first event. In
xg_frame_resized itself it might be necessary to disable the size hints
to prevent that (as done in xg_frame_set_char_size). But I don't have
enough experience with GTK and/or low-level frame handling. I was hoping
for somebody else to chime in.