summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2020-11-21 12:52:45 +0100
committerMarge Bot <marge-bot@gnome.org>2020-11-27 15:14:34 +0000
commitceefa72ade79e313bfa3d519163fa2c895c1057a (patch)
treeb53a5ee6ccd9a0353797e10a85851bbbdd880fe2
parent7547891a76cb71b4dc639903e14ac7a768fe1cc8 (diff)
downloadmutter-ceefa72ade79e313bfa3d519163fa2c895c1057a.tar.gz
backends/native: Shuffle keyboard a11y signal connection into MetaSeatImpl
This signal gets emitted in the input thread, and does things that belong to it. Make it clear by moving to the MetaSeatImpl. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1403>
-rw-r--r--src/backends/native/meta-backend-native.c35
-rw-r--r--src/backends/native/meta-seat-impl.c13
2 files changed, 20 insertions, 28 deletions
diff --git a/src/backends/native/meta-backend-native.c b/src/backends/native/meta-backend-native.c
index 79da95fa1..c397a7893 100644
--- a/src/backends/native/meta-backend-native.c
+++ b/src/backends/native/meta-backend-native.c
@@ -74,7 +74,6 @@ struct _MetaBackendNative
MetaLauncher *launcher;
MetaUdev *udev;
MetaKms *kms;
- MetaInputSettings *input_settings;
gulong udev_device_added_handler_id;
};
@@ -102,7 +101,6 @@ meta_backend_native_finalize (GObject *object)
g_clear_object (&native->udev);
g_clear_object (&native->kms);
meta_launcher_free (native->launcher);
- g_clear_object (&native->input_settings);
G_OBJECT_CLASS (meta_backend_native_parent_class)->finalize (object);
}
@@ -164,32 +162,9 @@ update_viewports (MetaBackend *backend)
}
static void
-kbd_a11y_changed_cb (MetaInputSettings *input_settings,
- MetaKbdA11ySettings *a11y_settings,
- MetaBackend *backend)
-{
- ClutterBackend *clutter_backend = meta_backend_get_clutter_backend (backend);
- ClutterSeat *seat = clutter_backend_get_default_seat (clutter_backend);
- ClutterInputDevice *device;
-
- device = clutter_seat_get_keyboard (seat);
- if (device)
- meta_input_device_native_apply_kbd_a11y_settings (META_INPUT_DEVICE_NATIVE (device),
- a11y_settings);
-}
-
-static void
meta_backend_native_post_init (MetaBackend *backend)
{
- MetaBackendNative *backend_native = META_BACKEND_NATIVE (backend);
MetaSettings *settings = meta_backend_get_settings (backend);
- ClutterBackend *clutter_backend = meta_backend_get_clutter_backend (backend);
- MetaSeatNative *seat =
- META_SEAT_NATIVE (clutter_backend_get_default_seat (clutter_backend));
-
- backend_native->input_settings = meta_seat_impl_get_input_settings (seat->impl);
- g_signal_connect_object (backend_native->input_settings, "kbd-a11y-changed",
- G_CALLBACK (kbd_a11y_changed_cb), backend, 0);
META_BACKEND_CLASS (meta_backend_native_parent_class)->post_init (backend);
@@ -261,9 +236,11 @@ meta_backend_native_create_renderer (MetaBackend *backend,
static MetaInputSettings *
meta_backend_native_get_input_settings (MetaBackend *backend)
{
- MetaBackendNative *backend_native = META_BACKEND_NATIVE (backend);
+ ClutterBackend *clutter_backend = meta_backend_get_clutter_backend (backend);
+ MetaSeatNative *seat_native =
+ META_SEAT_NATIVE (clutter_backend_get_default_seat (clutter_backend));
- return backend_native->input_settings;
+ return meta_seat_impl_get_input_settings (seat_native->impl);
}
static MetaLogicalMonitor *
@@ -667,6 +644,7 @@ void meta_backend_native_resume (MetaBackendNative *native)
MetaSeatNative *seat =
META_SEAT_NATIVE (clutter_backend_get_default_seat (clutter_backend));
MetaRenderer *renderer = meta_backend_get_renderer (backend);
+ MetaInputSettings *input_settings;
COGL_TRACE_BEGIN_SCOPED (MetaBackendNativeResume,
"Backend (resume)");
@@ -683,7 +661,8 @@ void meta_backend_native_resume (MetaBackendNative *native)
idle_monitor = meta_idle_monitor_get_core ();
meta_idle_monitor_reset_idletime (idle_monitor);
- meta_input_settings_maybe_restore_numlock_state (native->input_settings);
+ input_settings = meta_backend_get_input_settings (backend);
+ meta_input_settings_maybe_restore_numlock_state (input_settings);
clutter_seat_ensure_a11y_state (CLUTTER_SEAT (seat));
}
diff --git a/src/backends/native/meta-seat-impl.c b/src/backends/native/meta-seat-impl.c
index 32f56b120..bafc69e03 100644
--- a/src/backends/native/meta-seat-impl.c
+++ b/src/backends/native/meta-seat-impl.c
@@ -2477,6 +2477,17 @@ static const struct libinput_interface libinput_interface = {
};
static void
+kbd_a11y_changed_cb (MetaInputSettings *input_settings,
+ MetaKbdA11ySettings *a11y_settings,
+ MetaSeatImpl *seat_impl)
+{
+ MetaInputDeviceNative *keyboard;
+
+ keyboard = META_INPUT_DEVICE_NATIVE (seat_impl->core_keyboard);
+ meta_input_device_native_apply_kbd_a11y_settings (keyboard, a11y_settings);
+}
+
+static void
meta_seat_impl_set_keyboard_numlock (MetaSeatImpl *seat_impl,
gboolean numlock_state)
{
@@ -2568,6 +2579,8 @@ meta_seat_impl_constructed (GObject *object)
udev_unref (udev);
seat_impl->input_settings = meta_input_settings_native_new (seat_impl);
+ g_signal_connect_object (seat_impl->input_settings, "kbd-a11y-changed",
+ G_CALLBACK (kbd_a11y_changed_cb), seat_impl, 0);
seat_impl->udev_client = g_udev_client_new ((const char *[]) { "input", NULL });