backends/native: Proxy modifier state changes via MetaSeatImpl
This changes within the MetaSeatImpl realm, so use a signal to forward this to the MetaSeatNative/MetaKeymapNative one. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1403>
This commit is contained in:
parent
be1ffc86ca
commit
89a140d618
2 changed files with 20 additions and 1 deletions
|
@ -112,6 +112,7 @@ enum
|
|||
KBD_A11Y_MODS_STATE_CHANGED,
|
||||
TOUCH_MODE,
|
||||
BELL,
|
||||
MODS_STATE_CHANGED,
|
||||
N_SIGNALS
|
||||
};
|
||||
|
||||
|
@ -343,7 +344,7 @@ meta_seat_impl_notify_key (MetaSeatImpl *seat_impl,
|
|||
{
|
||||
MetaInputDeviceNative *keyboard_native;
|
||||
|
||||
g_signal_emit_by_name (seat_impl->keymap, "state-changed");
|
||||
g_signal_emit (seat_impl, signals[MODS_STATE_CHANGED], 0);
|
||||
meta_seat_impl_sync_leds (seat_impl);
|
||||
keyboard_native = META_INPUT_DEVICE_NATIVE (seat_impl->core_keyboard);
|
||||
meta_input_device_native_a11y_maybe_notify_toggle_keys (keyboard_native);
|
||||
|
@ -2738,6 +2739,12 @@ meta_seat_impl_class_init (MetaSeatImplClass *klass)
|
|||
G_SIGNAL_RUN_LAST,
|
||||
0, NULL, NULL, NULL,
|
||||
G_TYPE_NONE, 0);
|
||||
signals[MODS_STATE_CHANGED] =
|
||||
g_signal_new ("mods-state-changed",
|
||||
G_TYPE_FROM_CLASS (object_class),
|
||||
G_SIGNAL_RUN_LAST,
|
||||
0, NULL, NULL, NULL,
|
||||
G_TYPE_NONE, 0);
|
||||
|
||||
g_object_class_install_properties (object_class, N_PROPS, props);
|
||||
}
|
||||
|
|
|
@ -140,6 +140,16 @@ proxy_bell (MetaSeatImpl *seat_impl,
|
|||
clutter_seat_bell_notify (CLUTTER_SEAT (seat_native));
|
||||
}
|
||||
|
||||
static void
|
||||
proxy_mods_state_changed (MetaSeatImpl *seat_impl,
|
||||
ClutterSeat *seat)
|
||||
{
|
||||
ClutterKeymap *keymap;
|
||||
|
||||
keymap = clutter_seat_get_keymap (seat);
|
||||
g_signal_emit_by_name (keymap, "state-changed");
|
||||
}
|
||||
|
||||
static void
|
||||
meta_seat_native_constructed (GObject *object)
|
||||
{
|
||||
|
@ -154,6 +164,8 @@ meta_seat_native_constructed (GObject *object)
|
|||
G_CALLBACK (proxy_touch_mode_changed), seat);
|
||||
g_signal_connect (seat->impl, "bell",
|
||||
G_CALLBACK (proxy_bell), seat);
|
||||
g_signal_connect (seat->impl, "mods-state-changed",
|
||||
G_CALLBACK (proxy_mods_state_changed), seat);
|
||||
|
||||
seat->core_pointer = meta_seat_impl_get_pointer (seat->impl);
|
||||
seat->core_keyboard = meta_seat_impl_get_keyboard (seat->impl);
|
||||
|
|
Loading…
Reference in a new issue