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@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);
On 09/24/2013 11:10 AM, Vratislav Podzimek wrote:
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@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);
Why is the signal being connected to win->priv->event_box but disconnected on win->priv->info_bar?
On Tue, 2013-09-24 at 11:15 -0400, David Shea wrote:
On 09/24/2013 11:10 AM, Vratislav Podzimek wrote:
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@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);
Why is the signal being connected to win->priv->event_box but disconnected on win->priv->info_bar?
Good point, that should be fixed as well. The weird thing is that it worked as it is and there was no warning in the log. Fixing locally.
anaconda-patches@lists.fedorahosted.org