Wayland Window Management Proposal
paquette.mj at gmail.com
Fri May 13 10:59:33 PDT 2011
I hope you guys don't mind my chiming in here.
The way I handled a window resize was to grow or shrink the window buffer and onscreen region as requested by the client, mark it as invalid, and hold off on compositing it until the app indicated the buffer was valid, or had good content again. A timer in the server acted as a backup for this, to allow display update treating the window as containing only the background or autofill color for compositing purposes, so things like running an app under the debugger wouldn't render the display unusable. The compositor treated an 'invalid' buffer as being a 1x1 pixel buffer holding the background/autofill color, scaled up to the onscreen window size.
The window resize request could specify that content was to be preserved relative to the window origin with new content areas autofilled with the background color, or the buffer would just be filled with the autofill color, or that the buffer would be left as-is because the app would completely repaint the content (as-is could look pretty bad if not repainted, what with the wrong rowbyte values and all...).
It did take a bit of work to convince a few app developers that when they resized a window, they should immediately fix up the content without wandering off to query the odd remote database, but the majority of apps appeared to be ready to redraw content promptly on doing a resize.
On May 13, 2011, at 10:37 AM, Bill Spitzak wrote:
> Michal Suchanek wrote:
>>> Yes: it handles all resizing uniformly badly. It's pretty horrible.
>> So you can see the background color of clients that are slow to
>> repaint. Oh, how painful.
> Yes, that is UNACCEPTABLE! Get it through your head that the intention of Wayland is so that Linux stops looking like crap compared to other systems. NEVER NEVER NEVER should a "partially updated window" appear. If it does, Wayland is junk. This means your idea violates one of the basic design principles of Wayland and cannot be done.
> You also have to face it that programs lock up and don't respond to all kinds of actions and it is silly to try to address just resize. If the window is not going to draw I would prefer it not to resize so I don't lose the old contents.
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
More information about the wayland-devel