summaryrefslogtreecommitdiff
path: root/src/backends/native/meta-seat-impl.c
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2020-08-11 17:11:51 +0200
committerMarge Bot <marge-bot@gnome.org>2020-11-27 15:14:33 +0000
commit31439d78410f5a0def3b5a778df4066add60c224 (patch)
treef6b746d3df09ccc818a1538de4f747055215ddbd /src/backends/native/meta-seat-impl.c
parent39f4acac3de765bf560da54fc98db06c0bdabcca (diff)
downloadmutter-31439d78410f5a0def3b5a778df4066add60c224.tar.gz
backends/native: Forward keyboard a11y changes via the MetaSeatImpl
These changes will happen in the input event management code, so let them be emitted via the MetaSeatImpl, as that's what we'll have neat access to. The ClutterSeat signals are now emitted from there. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1403>
Diffstat (limited to 'src/backends/native/meta-seat-impl.c')
-rw-r--r--src/backends/native/meta-seat-impl.c42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/backends/native/meta-seat-impl.c b/src/backends/native/meta-seat-impl.c
index f3eb6efe1..a8ee3fc2a 100644
--- a/src/backends/native/meta-seat-impl.c
+++ b/src/backends/native/meta-seat-impl.c
@@ -106,6 +106,15 @@ enum
static GParamSpec *props[N_PROPS] = { NULL };
+enum
+{
+ KBD_A11Y_FLAGS_CHANGED,
+ KBD_A11Y_MODS_STATE_CHANGED,
+ N_SIGNALS
+};
+
+static guint signals[N_SIGNALS] = { 0 };
+
G_DEFINE_TYPE (MetaSeatImpl, meta_seat_impl, G_TYPE_OBJECT)
static void process_events (MetaSeatImpl *seat_impl);
@@ -2700,6 +2709,21 @@ meta_seat_impl_class_init (MetaSeatImplClass *klass)
G_PARAM_READWRITE |
G_PARAM_CONSTRUCT_ONLY);
+ signals[KBD_A11Y_FLAGS_CHANGED] =
+ g_signal_new ("kbd-a11y-flags-changed",
+ G_TYPE_FROM_CLASS (object_class),
+ G_SIGNAL_RUN_LAST,
+ 0, NULL, NULL, NULL,
+ G_TYPE_NONE, 2,
+ G_TYPE_UINT, G_TYPE_UINT);
+ signals[KBD_A11Y_MODS_STATE_CHANGED] =
+ g_signal_new ("kbd-a11y-mods-state-changed",
+ G_TYPE_FROM_CLASS (object_class),
+ G_SIGNAL_RUN_LAST,
+ 0, NULL, NULL, NULL,
+ G_TYPE_NONE, 2,
+ G_TYPE_UINT, G_TYPE_UINT);
+
g_object_class_install_properties (object_class, N_PROPS, props);
}
@@ -3020,3 +3044,21 @@ meta_seat_impl_new (MetaSeatNative *seat_native,
"seat-id", seat_id,
NULL);
}
+
+void
+meta_seat_impl_notify_kbd_a11y_flags_changed (MetaSeatImpl *seat_impl,
+ MetaKeyboardA11yFlags new_flags,
+ MetaKeyboardA11yFlags what_changed)
+{
+ g_signal_emit (seat_impl, signals[KBD_A11Y_FLAGS_CHANGED], 0,
+ new_flags, what_changed);
+}
+
+void
+meta_seat_impl_notify_kbd_a11y_mods_state_changed (MetaSeatImpl *seat_impl,
+ xkb_mod_mask_t new_latched_mods,
+ xkb_mod_mask_t new_locked_mods)
+{
+ g_signal_emit (seat_impl, signals[KBD_A11Y_MODS_STATE_CHANGED], 0,
+ new_latched_mods, new_locked_mods);
+}