[PATCH wayland] Add a relative_grab request to the wl_shell_surface interface

Daniel Stone daniel at fooishbar.org
Mon Aug 27 13:45:17 PDT 2012


Hi,

On 27 August 2012 11:55, Philipp Brüschweiler <blei42 at gmail.com> wrote:
> This request can be used to grab the pointer of a specified seat. A
> pointer grabbed in this way will be made invisible and won't send any
> more motion events. Instead it reports relative motion using the motion
> event on the returned object.
>
> A grab can be broken by the application by destroying the wl_relative_grab
> object, or by the compositor, in which case the compositor sends a
> destroy_me event to the application.
>
> Recommended behaviour for compositors is to break grabs when the keyboard
> focus changes to a different window, e.g. by alt-tabbing out of the
> grabbing application.

This mostly looks good to me, but I think it'd be better structured
along the lines of wl_pointer.  So, perhaps call it wl_pointer_raw,
have it send enter and leave events, and perhaps duplicate the button
and motion events too.  You could basically copy the wl_pointer
interface, really ...

The other other alternative, now I think of it, is to add a
wl_pointer_raw capability to wl_seat, with a wl_seat_get_pointer_raw,
which just returns another wl_pointer interface, except that it
returns relative co-ordinates instead.  Either way, following the
enter and leave pattern (with surfaces) would be great.

Cheers,
Daniel


More information about the wayland-devel mailing list