[PATCH wayland-protocols v2 2/2] Introduce pointer locking and confinement protocol

Bill Spitzak spitzak at gmail.com
Sat Jan 2 13:30:29 PST 2016

On 01/01/2016 08:54 AM, Daniel Stone wrote:

> I almost wonder if we couldn't make peoples' lives easier by merging
> locking and confinement into a single interface, adding a bool for
> whether or not to allow pointer movement (confine) or not (lock). Or
> perhaps, rather than a bool, we could add an allow-null
> wp_relative_pointer argument instead: gives you lock if non-null, or
> confine if null.

Yes please merge these two almost-identical apis into a single one. Base 
it on the confinement version. This already allows the client to update 
the confinement region as often as wanted. A zero-sized region can force 
the cursor to be at a particular point, which is what the pointer lock 
does (with my oft-requested enhancement that the normal cursor-setting 
code can be reused to set the cursor image).

If you want to duplicate the almost-useless current pointer-lock, the 
client can just hide the cursor, and make a fake one using a new 
surface. Setting the region also sets the "hint" as he calls it.

> Also, for symmetry with wp_relative_pointer, should this take a
> wl_pointer instead of wl_seat?

Seems like a good idea

>> +      If the compositor decides to unlock the pointer the unlocked event is
>> +      sent. The wp_locked_pointer object is at this point defunct and should be
>> +      destroyed.
> Egads. :( This is a bit hostile - what's the harm in allowing latent
> objects to remain?

I think he is just trying to say that the object is now useless. The 
client does not have to destroy it, but it probably should.

More information about the wayland-devel mailing list