[master][PATCH] Use g_signal_handler_disconnect instead of g_object_disconnect (#1010486)

Vratislav Podzimek vpodzime at redhat.com
Tue Sep 24 15:10:44 UTC 2013


Usage of g_object_disconnect is more complicated and if not passed all arguments
it expects, it produces a warning.

Signed-off-by: Vratislav Podzimek <vpodzime at redhat.com>
---
 widgets/src/BaseWindow.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/widgets/src/BaseWindow.c b/widgets/src/BaseWindow.c
index 67aac36..e8f9df6 100644
--- a/widgets/src/BaseWindow.c
+++ b/widgets/src/BaseWindow.c
@@ -90,6 +90,7 @@ enum {
 
 struct _AnacondaBaseWindowPrivate {
     gboolean    is_beta, info_shown;
+    gulong     clicked_handler_id;
     GtkWidget  *main_box, *event_box, *info_bar;
     GtkWidget  *alignment;
     GtkWidget  *nav_box, *nav_area, *action_area;
@@ -482,8 +483,8 @@ static void anaconda_base_window_set_info_bar(AnacondaBaseWindow *win, GtkMessag
      * bar is hidden.
      */
     gtk_widget_add_events(GTK_WIDGET(win->priv->event_box), GDK_BUTTON_RELEASE_MASK);
-    g_signal_connect(win->priv->event_box, "button-release-event",
-                     G_CALLBACK(anaconda_base_window_info_bar_clicked), win);
+    win->priv->clicked_handler_id = g_signal_connect(win->priv->event_box, "button-release-event",
+                                          G_CALLBACK(anaconda_base_window_info_bar_clicked), win);
 
     content_area = gtk_info_bar_get_content_area(GTK_INFO_BAR(win->priv->info_bar));
 
@@ -562,7 +563,7 @@ void anaconda_base_window_clear_info(AnacondaBaseWindow *win) {
     if (!win->priv->info_shown)
         return;
 
-    g_object_disconnect(win->priv->info_bar, "button-release-event", NULL);
+    g_signal_handler_disconnect(win->priv->info_bar, win->priv->clicked_handler_id);
 
     gtk_widget_hide(win->priv->info_bar);
     gtk_widget_destroy(win->priv->info_bar);
-- 
1.7.11.7



More information about the anaconda-patches mailing list