[PATCH 2/2] protocol: add state set functions for maximized and fullscreen.

Bill Spitzak spitzak at gmail.com
Mon Nov 4 23:12:03 CET 2013


Jason Ekstrand wrote:

> Here is the problem.  Say you have two pointers P and Q and two and two 
> windows A and B.  P clicks on A and A a is now active.  Q clicks on B 
> and now B is active.  Then P goes and clicks on B.  However, B is 
> already active so it doesn't request an activation and A stays active 
> with pointer P.  This assumes we are trusting clients to request 
> activation.  The other option is that we simply force a 
> click-always-activates model and clients are constantly fighting the 
> compositor just to make modal dialogues work.

Clients have to activate themselves on all clicks whether or not they 
know they are active. Otherwise it is possible that another client has 
grabbed the activation. The client will not see the deactivate until 
after the click and has no reason to know it is incorrect, and the 
compositor may think the client purposely did not activate itself and 
thus cannot fake it either.

Or I guess a client could activate itself on deactivate events and rely 
on the compositor ignoring them if it really should not be active but 
that sounds more like a kludge.

This has nothing to do with modal dialogs. The client knows what surface 
is modal and can send that (rather than the surface the cursor in on) 
with the activate request.

> That's not correct.  Timestamps are seat specific but timestamps are not 
> the same as serials.  Timestamps are local to the seat.  Serials are 
> actually compositor-global in weston and, in order to make things work, 
> should probably at least be client-global in other compositors.

Oh that's good news. Okay ignore my previous response about this, sounds 
good!



More information about the wayland-devel mailing list