aboutsummaryrefslogtreecommitdiffstats
path: root/widgets/misc/e-filter-bar.c
diff options
context:
space:
mode:
authorJeffrey Stedfast <fejj@ximian.com>2001-08-10 13:16:07 +0800
committerJeffrey Stedfast <fejj@src.gnome.org>2001-08-10 13:16:07 +0800
commitd69a71921a70ccd985e34a4f58bb0f0a15c4320f (patch)
tree097da5593a1cddc50bf7fa788b0fd67609692241 /widgets/misc/e-filter-bar.c
parent268c9ae3e86c0b8eb0932b7ac09a06dbe9d62d4f (diff)
downloadgsoc2013-evolution-d69a71921a70ccd985e34a4f58bb0f0a15c4320f.tar
gsoc2013-evolution-d69a71921a70ccd985e34a4f58bb0f0a15c4320f.tar.gz
gsoc2013-evolution-d69a71921a70ccd985e34a4f58bb0f0a15c4320f.tar.bz2
gsoc2013-evolution-d69a71921a70ccd985e34a4f58bb0f0a15c4320f.tar.lz
gsoc2013-evolution-d69a71921a70ccd985e34a4f58bb0f0a15c4320f.tar.xz
gsoc2013-evolution-d69a71921a70ccd985e34a4f58bb0f0a15c4320f.tar.zst
gsoc2013-evolution-d69a71921a70ccd985e34a4f58bb0f0a15c4320f.zip
Don't forget to unref stuff here too.
2001-08-10 Jeffrey Stedfast <fejj@ximian.com> * e-search-bar.c (impl_destroy): Don't forget to unref stuff here too. * e-filter-bar.c (destroy): Free all the goodies that we allocate at construct time and unref the rule context. (class_init): Override the destroy method. svn path=/trunk/; revision=11871
Diffstat (limited to 'widgets/misc/e-filter-bar.c')
-rw-r--r--widgets/misc/e-filter-bar.c31
1 files changed, 26 insertions, 5 deletions
diff --git a/widgets/misc/e-filter-bar.c b/widgets/misc/e-filter-bar.c
index 4bdcb69615..42ec5279e0 100644
--- a/widgets/misc/e-filter-bar.c
+++ b/widgets/misc/e-filter-bar.c
@@ -189,7 +189,7 @@ menubar_activated (ESearchBar *esb, int id, void *data)
gtk_widget_show (gd);
}
-
+
d(printf("Save menu\n"));
break;
default:
@@ -210,7 +210,7 @@ menubar_activated (ESearchBar *esb, int id, void *data)
return;
}
}
-
+
gtk_signal_emit_stop_by_name (GTK_OBJECT (esb), "menu_activated");
}
@@ -343,7 +343,7 @@ set_menu (ESearchBar *esb, ESearchBarItem *items)
}
static void
-set_option(ESearchBar *esb, ESearchBarItem *items)
+set_option (ESearchBar *esb, ESearchBarItem *items)
{
GArray *menu;
EFilterBar *efb = (EFilterBar *)esb;
@@ -377,6 +377,25 @@ impl_get_arg (GtkObject *object, GtkArg *arg, guint arg_id)
}
}
+static void
+destroy (GtkObject *object)
+{
+ EFilterBar *bar;
+
+ g_return_if_fail (object != NULL);
+ g_return_if_fail (E_IS_FILTER_BAR (object));
+
+ bar = E_FILTER_BAR (object);
+ gtk_object_unref (GTK_OBJECT (bar->context));
+ g_free (bar->userrules);
+ g_free (bar->systemrules);
+ g_ptr_array_free (bar->menu_rules, TRUE);
+ g_ptr_array_free (bar->option_rules, TRUE);
+
+ if (GTK_OBJECT_CLASS (parent_class)->destroy)
+ (*GTK_OBJECT_CLASS (parent_class)->destroy) (object);
+}
+
static void
class_init (EFilterBarClass *klass)
@@ -384,9 +403,11 @@ class_init (EFilterBarClass *klass)
GtkObjectClass *object_class;
ESearchBarClass *esb_class = (ESearchBarClass *)klass;
- object_class = GTK_OBJECT_CLASS(klass);
+ object_class = GTK_OBJECT_CLASS (klass);
+
+ parent_class = gtk_type_class (e_search_bar_get_type ());
- parent_class = gtk_type_class(e_search_bar_get_type());
+ object_class->destroy = destroy;
object_class->get_arg = impl_get_arg;