diff options
author | Jeffrey Stedfast <fejj@ximian.com> | 2001-08-10 13:16:07 +0800 |
---|---|---|
committer | Jeffrey Stedfast <fejj@src.gnome.org> | 2001-08-10 13:16:07 +0800 |
commit | d69a71921a70ccd985e34a4f58bb0f0a15c4320f (patch) | |
tree | 097da5593a1cddc50bf7fa788b0fd67609692241 /widgets/misc/e-filter-bar.c | |
parent | 268c9ae3e86c0b8eb0932b7ac09a06dbe9d62d4f (diff) | |
download | gsoc2013-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.c | 31 |
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; |