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

From: martin rudalics <[email-masked]>
Date: Wed, 04 Mar 2015 19:45:28 +0100

>>   > 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 still don't understand how you "force the emacs frame to take the
height of the entire screen".  Do you set the fullscreen frame parameter
to `fullheight'?

 >>   > 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.

Do you mean you want hints honored when the frame is floating and not
honored when the frame is tiled?

 > 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.

And if you set `frame-resize-pixelwise' to t you get only one resize
event?

 > 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.

What is the "initial size"?  Who sets it?

 > 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.

In x_wm_set_size_hint we disable size hints for fullscreen and maximized
frames.  Is it that what you mean with "as done in
xg_frame_set_char_size"?

martin