[empathy] roster-view: clear the view when disposing
- From: Guillaume Desmottes <gdesmott src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [empathy] roster-view: clear the view when disposing
- Date: Tue, 11 Sep 2012 08:10:38 +0000 (UTC)
commit e4d1085846020f3522f94e1cb075b7d9417b9cea
Author: Guillaume Desmottes <guillaume desmottes collabora co uk>
Date: Mon Sep 10 11:14:22 2012 +0200
roster-view: clear the view when disposing
https://bugzilla.gnome.org/show_bug.cgi?id=683699
libempathy-gtk/empathy-roster-view.c | 26 +++++++++++++++-----------
1 files changed, 15 insertions(+), 11 deletions(-)
---
diff --git a/libempathy-gtk/empathy-roster-view.c b/libempathy-gtk/empathy-roster-view.c
index 8c2c277..a5d1459 100644
--- a/libempathy-gtk/empathy-roster-view.c
+++ b/libempathy-gtk/empathy-roster-view.c
@@ -1046,12 +1046,27 @@ empathy_roster_view_constructed (GObject *object)
}
static void
+clear_view (EmpathyRosterView *self)
+{
+ g_hash_table_remove_all (self->priv->roster_contacts);
+ g_hash_table_remove_all (self->priv->roster_groups);
+ g_hash_table_remove_all (self->priv->displayed_contacts);
+
+ gtk_container_foreach (GTK_CONTAINER (self),
+ (GtkCallback) gtk_widget_destroy, NULL);
+}
+
+static void
empathy_roster_view_dispose (GObject *object)
{
EmpathyRosterView *self = EMPATHY_ROSTER_VIEW (object);
void (*chain_up) (GObject *) =
((GObjectClass *) empathy_roster_view_parent_class)->dispose;
+ /* Start by clearing the view so our internal hash tables are cleared from
+ * objects being destroyed. */
+ clear_view (self);
+
stop_flashing (self);
empathy_roster_view_set_live_search (self, NULL);
@@ -1377,17 +1392,6 @@ empathy_roster_view_show_offline (EmpathyRosterView *self,
g_object_notify (G_OBJECT (self), "show-offline");
}
-static void
-clear_view (EmpathyRosterView *self)
-{
- g_hash_table_remove_all (self->priv->roster_contacts);
- g_hash_table_remove_all (self->priv->roster_groups);
- g_hash_table_remove_all (self->priv->displayed_contacts);
-
- gtk_container_foreach (GTK_CONTAINER (self),
- (GtkCallback) gtk_widget_destroy, NULL);
-}
-
void
empathy_roster_view_show_groups (EmpathyRosterView *self,
gboolean show)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]