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 *pm_label;
|
||||
GtkWidget *am_pm_stack;
|
||||
gulong am_pm_visiblity_changed_id;
|
||||
|
||||
GnomeWallClock *clock_tracker;
|
||||
|
||||
|
@ -140,6 +141,13 @@ cc_date_time_panel_dispose (GObject *object)
|
|||
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->clock_tracker);
|
||||
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->pm_label);
|
||||
gtk_widget_show_all (priv->am_pm_stack);
|
||||
g_signal_connect_swapped (priv->am_pm_stack, "notify::visible-child",
|
||||
G_CALLBACK (am_pm_stack_visible_child_changed_cb), self);
|
||||
priv->am_pm_visiblity_changed_id = g_signal_connect_swapped (priv->am_pm_stack,
|
||||
"notify::visible-child",
|
||||
G_CALLBACK (am_pm_stack_visible_child_changed_cb),
|
||||
self);
|
||||
am_pm_stack_visible_child_changed_cb (self);
|
||||
|
||||
am_pm_button = W ("am_pm_button");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue