mutter/src
Carlos Garnacho a2c11f0e87 wayland: Introduce MetaWaylandInput/MetaWaylandEventInterface
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>
2024-02-13 01:01:48 +01:00
..
backends wayland: Handle pointer focus inhibition at the Clutter level 2024-02-13 01:01:48 +01:00
common backend/native: Move DrmFormatBuf to cogl-drm-formats 2024-01-03 14:46:41 +01:00
compositor compositor-view/native: Remove leftover check 2024-02-10 17:41:12 +00:00
core meta: Drop deprecated methods 2024-02-09 18:03:09 +01:00
frames frames: Notify borders on first content resize 2024-01-03 19:31:51 +00:00
meta meta: Drop deprecated methods 2024-02-09 18:03:09 +01:00
tests wayland: Handle pointer focus inhibition at the Clutter level 2024-02-13 01:01:48 +01:00
wayland wayland: Introduce MetaWaylandInput/MetaWaylandEventInterface 2024-02-13 01:01:48 +01:00
x11 group: Move various functions to MetaWindowX11 2024-02-08 16:55:06 +01:00
meson.build wayland: Introduce MetaWaylandInput/MetaWaylandEventInterface 2024-02-13 01:01:48 +01:00
meta-private-enum-types.c.in build: Add missing include 2022-08-10 20:28:40 +02:00
meta-private-enum-types.h.in cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00