mirror of
https://github.com/brl/mutter.git
synced 2024-11-28 02:50:41 -05:00
a2c11f0e87
MetaWaylandInput is an object that will become in charge of handling input events on their way to the Wayland socket. It keeps a stack of event handlers, and propagates events and changes across them in order to have them emit Wayland events, or change focus. Each of these event handlers has a MetaWaylandEventInterface, this is a vtable meant to replace MetaWaylandPointerGrabInterface and MetaWaylandKeyboardGrabInterface in an unified manner, with the following methods: - get_focus_surface: to return the focus surface for a device/sequence. Since several handlers will want to delegate logic on previous handlers, it is optional to chain up with meta_wayland_event_handler_chain_up_get_focus_surface(). - focus: To trigger a focus change for a device/sequence, since event handlers are daisy chained by default, it is mandatory to chain up with meta_wayland_event_handler_chain_up_focus(), either with the given surface, or passing NULL to let later handlers unset their state. - press/motion/release: Unified handlers for pointer/touch/stylus input, they chain up like event handlers do. - key: Key event handler, propagates like event handlers do. - other: Fallthrough for other events (pad, scroll, ...), propagates like event handlers do. Since there is a variety of expected behaviors, and the possibility of stacking for some of the existing Wayland "grabs", this provides the mechanism for that to happen. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3420> |
||
---|---|---|
.. | ||
backends | ||
common | ||
compositor | ||
core | ||
frames | ||
meta | ||
tests | ||
wayland | ||
x11 | ||
meson.build | ||
meta-private-enum-types.c.in | ||
meta-private-enum-types.h.in |