[PATCH] Introduce set_size_hints xdg_surface request.

Bill Spitzak spitzak at gmail.com
Wed Aug 6 17:28:19 PDT 2014


Never mind my previous response. I just tried a bunch of programs that 
implement tiling internally, and only one of them (a Mail program with 
very simple set of 3 tiles) made a tile taller as it got narrower. All 
others just introduce scroll bars. Since these are programs with 
complete control and knowledge of their contents, it appears that it is 
too hard to do the complex resizing I was suggesting, especially for 
unknown clients.

So it seems ok to have the client send a minimum size to the compositor. 
The tiled compositor will figure out the layout based only on it's state 
and the minimum sizes of all the clients. No round trips.

It is still important that clients know the compositor may configure 
smaller than the minimum, and compositors to know that clients may 
resize the surface smaller too.

If the compositor requests a size that is too small, the client is 
expected to add scrollbars. If the contents "reflow" then it will 
probably manage to add a scrollbar in only one direction (this is why 
the client must do the scrollbars, not the compositor). If the client 
makes the surface larger than requested, the tiled window manager can 
clip or scale it to fit.

I am unsure if a maximum size is wanted. If a client actually has a 
maximum size it will just make the surface that size when a larger size 
is requested. The tiled window manager can then pad it with rectangles, 
this does not add any round trips. I could not find any program where 
the tiles act like there is a maximum size, and it is difficult to see 
what could be done with this information, for instance if a surface with 
no maximum size is in the same row/column. There is also the problem 
that you have to do something unintuitive to indicate there is no 
maximum size. So I would remove this, perhaps making it a different 
request in the future.

A tiled window manager also needs an api to tell the client to not draw 
"edges" and the shadow. This is also useful for maximized and 
fullscreen. Turning the titlebar on/off would be a different control, 
some tiled window managers may want to keep it.


More information about the wayland-devel mailing list