backends/native: Proxy bell notifications from within the MetaSeatImpl

As with other changes from within the MetaSeatImpl realm, proxy that
through a MetaSeatImpl signal, instead of poking directly on the ClutterSeat.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1403>
This commit is contained in:
Carlos Garnacho 2020-08-11 17:32:48 +02:00 committed by Marge Bot
parent facc963213
commit be1ffc86ca
4 changed files with 24 additions and 1 deletions

View File

@ -215,7 +215,7 @@ meta_input_device_native_is_grouped (ClutterInputDevice *device,
static void
meta_input_device_native_bell_notify (MetaInputDeviceNative *device)
{
clutter_seat_bell_notify (CLUTTER_SEAT (device->seat_impl->seat_native));
meta_seat_impl_notify_bell (device->seat_impl);
}
static void

View File

@ -111,6 +111,7 @@ enum
KBD_A11Y_FLAGS_CHANGED,
KBD_A11Y_MODS_STATE_CHANGED,
TOUCH_MODE,
BELL,
N_SIGNALS
};
@ -2731,6 +2732,12 @@ meta_seat_impl_class_init (MetaSeatImplClass *klass)
0, NULL, NULL,
g_cclosure_marshal_VOID__BOOLEAN,
G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
signals[BELL] =
g_signal_new ("bell",
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);
}
@ -3070,3 +3077,9 @@ meta_seat_impl_notify_kbd_a11y_mods_state_changed (MetaSeatImpl *seat_impl,
g_signal_emit (seat_impl, signals[KBD_A11Y_MODS_STATE_CHANGED], 0,
new_latched_mods, new_locked_mods);
}
void
meta_seat_impl_notify_bell (MetaSeatImpl *seat_impl)
{
g_signal_emit (seat_impl, signals[BELL], 0);
}

View File

@ -246,5 +246,6 @@ void meta_seat_impl_notify_kbd_a11y_flags_changed (MetaSeatImpl *seat_i
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);
void meta_seat_impl_notify_bell (MetaSeatImpl *seat_impl);
#endif /* META_SEAT_IMPL_H */

View File

@ -133,6 +133,13 @@ proxy_touch_mode_changed (MetaSeatImpl *seat_impl,
g_object_notify (G_OBJECT (seat_native), "touch-mode");
}
static void
proxy_bell (MetaSeatImpl *seat_impl,
MetaSeatNative *seat_native)
{
clutter_seat_bell_notify (CLUTTER_SEAT (seat_native));
}
static void
meta_seat_native_constructed (GObject *object)
{
@ -145,6 +152,8 @@ meta_seat_native_constructed (GObject *object)
G_CALLBACK (proxy_kbd_a11y_mods_state_changed), seat);
g_signal_connect (seat->impl, "touch-mode",
G_CALLBACK (proxy_touch_mode_changed), seat);
g_signal_connect (seat->impl, "bell",
G_CALLBACK (proxy_bell), seat);
seat->core_pointer = meta_seat_impl_get_pointer (seat->impl);
seat->core_keyboard = meta_seat_impl_get_keyboard (seat->impl);