From 5693ce3df798ec3e6822786e4b92f739ea3653ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guido=20G=C3=BCnther?= Date: Mon, 15 Jul 2019 14:07:25 +0200 Subject: [PATCH] keyboard: Simplify signal disconnect We're only keeping the signal ids around for disconnect but that only happens in dispose so it's o.k.to just disconnect all keyboard signals we listen to. --- eek/eek-gtk-keyboard.c | 32 +++++++------------------------- 1 file changed, 7 insertions(+), 25 deletions(-) diff --git a/eek/eek-gtk-keyboard.c b/eek/eek-gtk-keyboard.c index 436e754e..7b5cd573 100644 --- a/eek/eek-gtk-keyboard.c +++ b/eek/eek-gtk-keyboard.c @@ -57,9 +57,6 @@ typedef struct _EekGtkKeyboardPrivate { EekRenderer *renderer; EekKeyboard *keyboard; - gulong key_locked_handler; - gulong key_unlocked_handler; - gulong symbol_index_changed_handler; EekTheme *theme; GdkEventSequence *sequence; // unowned reference @@ -332,15 +329,12 @@ eek_gtk_keyboard_set_keyboard (EekGtkKeyboard *self, EekGtkKeyboardPrivate *priv = eek_gtk_keyboard_get_instance_private (self); priv->keyboard = g_object_ref (keyboard); - priv->key_locked_handler = - g_signal_connect (priv->keyboard, "key-locked", - G_CALLBACK(on_key_locked), self); - priv->key_unlocked_handler = - g_signal_connect (priv->keyboard, "key-unlocked", - G_CALLBACK(on_key_unlocked), self); - priv->symbol_index_changed_handler = - g_signal_connect (priv->keyboard, "symbol-index-changed", - G_CALLBACK(on_symbol_index_changed), self); + g_signal_connect (priv->keyboard, "key-locked", + G_CALLBACK(on_key_locked), self); + g_signal_connect (priv->keyboard, "key-unlocked", + G_CALLBACK(on_key_unlocked), self); + g_signal_connect (priv->keyboard, "symbol-index-changed", + G_CALLBACK(on_symbol_index_changed), self); } static void @@ -374,19 +368,7 @@ eek_gtk_keyboard_dispose (GObject *object) } if (priv->keyboard) { - if (g_signal_handler_is_connected (priv->keyboard, - priv->key_locked_handler)) - g_signal_handler_disconnect (priv->keyboard, - priv->key_locked_handler); - if (g_signal_handler_is_connected (priv->keyboard, - priv->key_unlocked_handler)) - g_signal_handler_disconnect (priv->keyboard, - priv->key_unlocked_handler); - if (g_signal_handler_is_connected (priv->keyboard, - priv->symbol_index_changed_handler)) - g_signal_handler_disconnect (priv->keyboard, - priv->symbol_index_changed_handler); - + g_signal_handlers_disconnect_by_data(priv->keyboard, self); GList *list, *head; list = eek_keyboard_get_pressed_keys (priv->keyboard);