Wayland Window Management Proposal
hramrach at centrum.cz
Fri May 13 09:03:35 PDT 2011
On 13 May 2011 17:25, Daniel Stone <daniel at fooishbar.org> wrote:
> On Fri, May 13, 2011 at 03:13:01PM +0200, Michal Suchanek wrote:
>> However, window resizes need to be responsive otherwise you introduce
>> lag, possibly to the point that the person moving the mouse has no
>> clue what is going on the moment a window resize is initiated.
>> Lag is something that can easily kill otherwise workable interface,
>> and fractions of second might seem reasonable on the drawing board but
>> they are still lag.
>> Lag-free resize is not something reasonably doable if you have to wait
>> for the client to respond for every size change to take place.
> Clients need to participate in the resize. Else what are you going to
> draw? Magically infer window contents? Fill the newly-exposed areas with
> background colour?
I don't really care. Responsive clients will repaint and you will not
notice anything amiss, for unresponsive clients anything is better
than leaving you wondering what is going on because you dragged this
window border and it is stuck.
>> X can handle remote clients and low priority clients participating in
>> the desktop environment.
> 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.
However, the fact that you *can* see the background means that if you
were waiting for the client to repaint before changing the window size
your experience resizing the window would be *horrible*.
OK, I guess you can wait some 2-3 vrefresh intervals for the client to
repaint and only then start ignoring it.
>> And this is not skipping a micro-optimization, this is closing the
>> desktop for entry of whole classes of clients.
> Clients which cannot be relied upon to respond promptly to anything you
> ask them to do? I don't think they're a target for premature
> optimisation, to be quite honest.
This is *not* *about* *optimization*. If you rely on *every* *single*
*client* to be responsive for your WM to work then the moment *any*
*single* *client* becomes unresponsive your WM *breaks*.
If you think a non-broken WM is an optimization I guess we live in
somewhat different worlds.
More information about the wayland-devel