mirror of
https://github.com/brl/mutter.git
synced 2025-02-16 13:24:09 +00:00
![Jonas Dreßler](/assets/img/avatar_default.png)
With the introduction of the input thread, we want to avoid modifying ClutterInputDevices from the main thread, since they're owned and updated by the thread. There's one part of ClutterInputDevice that's still modified from the main thread though, that is device-actors of pointer devices, and we're going to move that state-tracking into ClutterStage instead. So start that by adding the infrastructure to ClutterStage to keep track of those things. It consists of two hashtables which associate devices and touch sequences with actors, those hashtables get updated using clutter_stage_update_device_entry() and clutter_stage_remove_device_entry(), they can be queried by calling clutter_stage_get_device_actor(), which will replace clutter_input_device_get_actor(). clutter_stage_get_device_coords() is added and made available in clutter-mutter.h because we need to get the coordinates when repicking in meta_wayland_pointer_repick(). Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1633>