datetime: Disconnect from GtkStack signals before widget destruction
This fixes a regression from commit 545c886
that caused criticals when
leaving the datetime panel.
https://bugzilla.gnome.org/show_bug.cgi?id=709443
This commit is contained in:
parent
2234970583
commit
7ae60ad2cf
1 changed files with 12 additions and 2 deletions
|
@ -90,6 +90,7 @@ struct _CcDateTimePanelPrivate
|
||||||
GtkWidget *am_label;
|
GtkWidget *am_label;
|
||||||
GtkWidget *pm_label;
|
GtkWidget *pm_label;
|
||||||
GtkWidget *am_pm_stack;
|
GtkWidget *am_pm_stack;
|
||||||
|
gulong am_pm_visiblity_changed_id;
|
||||||
|
|
||||||
GnomeWallClock *clock_tracker;
|
GnomeWallClock *clock_tracker;
|
||||||
|
|
||||||
|
@ -140,6 +141,13 @@ cc_date_time_panel_dispose (GObject *object)
|
||||||
g_clear_object (&priv->cancellable);
|
g_clear_object (&priv->cancellable);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (priv->am_pm_visiblity_changed_id != 0)
|
||||||
|
{
|
||||||
|
g_signal_handler_disconnect (priv->am_pm_stack,
|
||||||
|
priv->am_pm_visiblity_changed_id);
|
||||||
|
priv->am_pm_visiblity_changed_id = 0;
|
||||||
|
}
|
||||||
|
|
||||||
g_clear_object (&priv->builder);
|
g_clear_object (&priv->builder);
|
||||||
g_clear_object (&priv->clock_tracker);
|
g_clear_object (&priv->clock_tracker);
|
||||||
g_clear_object (&priv->dtm);
|
g_clear_object (&priv->dtm);
|
||||||
|
@ -1132,8 +1140,10 @@ setup_am_pm_button (CcDateTimePanel *self)
|
||||||
gtk_container_add (GTK_CONTAINER (priv->am_pm_stack), priv->am_label);
|
gtk_container_add (GTK_CONTAINER (priv->am_pm_stack), priv->am_label);
|
||||||
gtk_container_add (GTK_CONTAINER (priv->am_pm_stack), priv->pm_label);
|
gtk_container_add (GTK_CONTAINER (priv->am_pm_stack), priv->pm_label);
|
||||||
gtk_widget_show_all (priv->am_pm_stack);
|
gtk_widget_show_all (priv->am_pm_stack);
|
||||||
g_signal_connect_swapped (priv->am_pm_stack, "notify::visible-child",
|
priv->am_pm_visiblity_changed_id = g_signal_connect_swapped (priv->am_pm_stack,
|
||||||
G_CALLBACK (am_pm_stack_visible_child_changed_cb), self);
|
"notify::visible-child",
|
||||||
|
G_CALLBACK (am_pm_stack_visible_child_changed_cb),
|
||||||
|
self);
|
||||||
am_pm_stack_visible_child_changed_cb (self);
|
am_pm_stack_visible_child_changed_cb (self);
|
||||||
|
|
||||||
am_pm_button = W ("am_pm_button");
|
am_pm_button = W ("am_pm_button");
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue