7ba1448e5b
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>
22 lines
754 B
C
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__ */
|