aboutsummaryrefslogtreecommitdiffstats
path: root/addressbook/gui/component/select-names
diff options
context:
space:
mode:
authorJon Trowbridge <trow@ximian.com>2001-11-09 01:31:40 +0800
committerJon Trowbridge <trow@src.gnome.org>2001-11-09 01:31:40 +0800
commit12323a556d88c4e49cd80524f1e6cb29e9f54d1e (patch)
tree908e2fad16ecbc23ab15e3e0346b4958ae4aa3bc /addressbook/gui/component/select-names
parent335e0c6bf698d999d811894ce75aa9b87a6106e4 (diff)
downloadgsoc2013-evolution-12323a556d88c4e49cd80524f1e6cb29e9f54d1e.tar.gz
gsoc2013-evolution-12323a556d88c4e49cd80524f1e6cb29e9f54d1e.tar.zst
gsoc2013-evolution-12323a556d88c4e49cd80524f1e6cb29e9f54d1e.zip
Explicitly destroy entries. Part of the fix for the lingering completion
2001-11-08 Jon Trowbridge <trow@ximian.com> * gui/component/select-names/e-select-names-bonobo.c (impl_destroy): Explicitly destroy entries. Part of the fix for the lingering completion window bug. svn path=/trunk/; revision=14628
Diffstat (limited to 'addressbook/gui/component/select-names')
-rw-r--r--addressbook/gui/component/select-names/e-select-names-bonobo.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/addressbook/gui/component/select-names/e-select-names-bonobo.c b/addressbook/gui/component/select-names/e-select-names-bonobo.c
index a3f4929fa6..071b2e0b2b 100644
--- a/addressbook/gui/component/select-names/e-select-names-bonobo.c
+++ b/addressbook/gui/component/select-names/e-select-names-bonobo.c
@@ -348,11 +348,18 @@ impl_SelectNames_activate_dialog (PortableServer_Servant servant,
/* GtkObject methods. */
+/* ACK! */
+typedef struct {
+ char *id;
+ EEntry *entry;
+} ESelectNamesManagerEntry;
+
static void
impl_destroy (GtkObject *object)
{
ESelectNamesBonobo *select_names;
ESelectNamesBonoboPrivate *priv;
+ EIterator *iterator;
select_names = E_SELECT_NAMES_BONOBO (object);
priv = select_names->priv;
@@ -361,6 +368,15 @@ impl_destroy (GtkObject *object)
gtk_widget_destroy (GTK_WIDGET (priv->manager->names));
priv->manager->names = NULL;
}
+
+ /* More suckage */
+ iterator = e_list_get_iterator (priv->manager->entries);
+ for (e_iterator_reset (iterator); e_iterator_is_valid (iterator); e_iterator_next (iterator)) {
+ ESelectNamesManagerEntry *entry = (ESelectNamesManagerEntry *)e_iterator_get (iterator);
+ if (entry && entry->entry)
+ gtk_widget_destroy (GTK_WIDGET (entry->entry));
+ }
+ gtk_object_unref (GTK_OBJECT (iterator));
/* FIXME: We leak on purpose. This sucks. */
/* gtk_object_unref (GTK_OBJECT (priv->manager)); */