mutter/clutter/clutter/clutter-settings-private.h
Carlos Garnacho 7ba1448e5b clutter: Move pointer a11y settings management from MetaInputSettings
All pointer a11y is a fabrication of Clutter backend-independent
code, with the help of a ClutterVirtualInputDevice and with some
UI on top.

On the other hand, MetaInputSettings is a backend implementation
detail, this has 2 gotchas:
- In the native backend, the MetaInputSettings (and pointer a11y
  with it) are initialized early, before the ClutterSeat core
  pointer is set up.
- Doing this from the MetaInputSettings also means another dubious
  access from the input thread into main thread territory.

Move the pointer a11y into ClutterSettings, making this effectively
backend-independent business, invariably done from the main thread
and ensured to happen after seat initialization.

Fixes: https://gitlab.gnome.org/GNOME/mutter/-/issues/1765
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1849>
2021-05-05 19:07:26 +00:00

22 lines
754 B
C

#ifndef __CLUTTER_SETTINGS_PRIVATE_H__
#define __CLUTTER_SETTINGS_PRIVATE_H__
#include <clutter/clutter-backend-private.h>
#include <clutter/clutter-settings.h>
G_BEGIN_DECLS
void _clutter_settings_set_backend (ClutterSettings *settings,
ClutterBackend *backend);
void clutter_settings_set_property_internal (ClutterSettings *settings,
const char *property,
GValue *value);
void clutter_settings_ensure_pointer_a11y_settings (ClutterSettings *settings,
ClutterSeat *seat);
G_END_DECLS
#endif /* __CLUTTER_SETTINGS_PRIVATE_H__ */