Gamepad focus model (Re: Input and games.)

Rick Yorgason rick at firefang.com
Wed May 8 08:06:08 PDT 2013


Rick Yorgason <rick at ...> writes:
> In thinking more about this some more, I don't even think these seats need
> to be aggregated. A second-class wl_seat would just mean "This seat is
> intended to be used at the application level rather than the compositor
> level, and it will send enter/leave events to the same surfaces as its
parent."

Once more in spec format, to be more explicit:

--------------------------------------------

New requests provided by wl_seat:

wl_seat::get_gamepad - return gamepad object
    The ID provided will be initialized to the wl_pointer interface for this
seat.

    This request only takes effect if the seat has the gamepad capability.

    Arguments:
        id -- new_id

--------------------------------------------

New events provided by wl_seat:

wl_seat::secondclass - Seat has become second-class
    Second-class seats are intended for client consumption rather than
server consumption. A second-class seat is always parented to a first-class
seat and follows its parent's focus. A second-class seat's pointer is
trapped by the focused surface.

    Arguments:
        parent -- object -- The parent seat.

wl_seat::firstclass - Seat has become first-class
    First-class seats are the default scenario. Multiple first-class seats
can be used to allow different users to control different applications on
the same desktop.

    No arguments.

wl_seat::index - Seat has a new friendly identifier
    The index is intended to be a user-friendly identifier to differentiate
seats. It starts from 1 and increments or reuses indices as necessary.
Devices such as gamepads with player indicators are expected to display this
value when possible.

    Arguments:
        index -- uint -- The new friendly identifier

wl_seat::enter - enter event
    Notification that this seat's focus is on a certain surface.

    Arguments:
        serial -- uint
        surface -- object

wl_seat::leave - leave event
    Notification that the seat's focus is no longer on a certain surface.

    The leave notification is sent before the enter notification for the new
focus.

    Arguments:
        serial -- uint
        surface -- object

---------------------------------------

New wl_seat::capability values:
    gamepad
        Value: 8
        This seat has a gamepad



More information about the wayland-devel mailing list