From be1ffc86ca03f9df4d88fb53dc0747f64c1a4e66 Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Tue, 11 Aug 2020 17:32:48 +0200 Subject: [PATCH] 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: --- src/backends/native/meta-input-device-native.c | 2 +- src/backends/native/meta-seat-impl.c | 13 +++++++++++++ src/backends/native/meta-seat-impl.h | 1 + src/backends/native/meta-seat-native.c | 9 +++++++++ 4 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/backends/native/meta-input-device-native.c b/src/backends/native/meta-input-device-native.c index b9f3d36fe..fde23231e 100644 --- a/src/backends/native/meta-input-device-native.c +++ b/src/backends/native/meta-input-device-native.c @@ -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 diff --git a/src/backends/native/meta-seat-impl.c b/src/backends/native/meta-seat-impl.c index 43d5052df..4aeb0d0c0 100644 --- a/src/backends/native/meta-seat-impl.c +++ b/src/backends/native/meta-seat-impl.c @@ -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); +} diff --git a/src/backends/native/meta-seat-impl.h b/src/backends/native/meta-seat-impl.h index 8d6439921..49a77298b 100644 --- a/src/backends/native/meta-seat-impl.h +++ b/src/backends/native/meta-seat-impl.h @@ -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 */ diff --git a/src/backends/native/meta-seat-native.c b/src/backends/native/meta-seat-native.c index 299524735..bad7c656f 100644 --- a/src/backends/native/meta-seat-native.c +++ b/src/backends/native/meta-seat-native.c @@ -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);