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:
Carlos Garnacho
2020-08-11 17:38:32 +02:00
committed by Marge Bot
parent be1ffc86ca
commit 89a140d618
2 changed files with 20 additions and 1 deletions

View File

@@ -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);
}