mirror of
https://github.com/brl/mutter.git
synced 2024-11-28 11:00:54 -05:00
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. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1403
This commit is contained in:
parent
bc111bf958
commit
5978531963
@ -111,6 +111,7 @@ enum
|
|||||||
KBD_A11Y_MODS_STATE_CHANGED,
|
KBD_A11Y_MODS_STATE_CHANGED,
|
||||||
TOUCH_MODE,
|
TOUCH_MODE,
|
||||||
BELL,
|
BELL,
|
||||||
|
MODS_STATE_CHANGED,
|
||||||
N_SIGNALS
|
N_SIGNALS
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -346,7 +347,7 @@ meta_seat_impl_notify_key (MetaSeatImpl *seat,
|
|||||||
|
|
||||||
if (update_keys && (changed_state & XKB_STATE_LEDS))
|
if (update_keys && (changed_state & XKB_STATE_LEDS))
|
||||||
{
|
{
|
||||||
g_signal_emit_by_name (seat->keymap, "state-changed");
|
g_signal_emit (seat, signals[MODS_STATE_CHANGED], 0);
|
||||||
meta_seat_impl_sync_leds (seat);
|
meta_seat_impl_sync_leds (seat);
|
||||||
meta_input_device_native_a11y_maybe_notify_toggle_keys (META_INPUT_DEVICE_NATIVE (seat->core_keyboard));
|
meta_input_device_native_a11y_maybe_notify_toggle_keys (META_INPUT_DEVICE_NATIVE (seat->core_keyboard));
|
||||||
}
|
}
|
||||||
@ -2747,6 +2748,12 @@ meta_seat_impl_class_init (MetaSeatImplClass *klass)
|
|||||||
G_SIGNAL_RUN_LAST,
|
G_SIGNAL_RUN_LAST,
|
||||||
0, NULL, NULL, NULL,
|
0, NULL, NULL, NULL,
|
||||||
G_TYPE_NONE, 0);
|
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);
|
g_object_class_install_properties (object_class, N_PROPS, props);
|
||||||
}
|
}
|
||||||
|
@ -144,6 +144,16 @@ proxy_bell (MetaSeatImpl *impl,
|
|||||||
clutter_seat_bell_notify (CLUTTER_SEAT (seat_native));
|
clutter_seat_bell_notify (CLUTTER_SEAT (seat_native));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
proxy_mods_state_changed (MetaSeatImpl *impl,
|
||||||
|
ClutterSeat *seat)
|
||||||
|
{
|
||||||
|
ClutterKeymap *keymap;
|
||||||
|
|
||||||
|
keymap = clutter_seat_get_keymap (seat);
|
||||||
|
g_signal_emit_by_name (keymap, "state-changed");
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
meta_seat_native_constructed (GObject *object)
|
meta_seat_native_constructed (GObject *object)
|
||||||
{
|
{
|
||||||
@ -158,6 +168,8 @@ meta_seat_native_constructed (GObject *object)
|
|||||||
G_CALLBACK (proxy_touch_mode_changed), seat);
|
G_CALLBACK (proxy_touch_mode_changed), seat);
|
||||||
g_signal_connect (seat->impl, "bell",
|
g_signal_connect (seat->impl, "bell",
|
||||||
G_CALLBACK (proxy_bell), seat);
|
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_pointer = meta_seat_impl_get_pointer (seat->impl);
|
||||||
seat->core_keyboard = meta_seat_impl_get_keyboard (seat->impl);
|
seat->core_keyboard = meta_seat_impl_get_keyboard (seat->impl);
|
||||||
|
Loading…
Reference in New Issue
Block a user