summaryrefslogtreecommitdiff
path: root/gtk/gtktreeviewcolumn.c
diff options
context:
space:
mode:
authorTim Janik <timj@gtk.org>2002-03-03 05:41:28 +0000
committerTim Janik <timj@src.gnome.org>2002-03-03 05:41:28 +0000
commitf0b58ab846b04abd4d23be19d0924b812cc74872 (patch)
treec7eac7da5950e721205e484def743cb377f0970b /gtk/gtktreeviewcolumn.c
parentb47b15f6ba401c735d415e65d1fa7620e3546968 (diff)
downloadgtk+-f0b58ab846b04abd4d23be19d0924b812cc74872.tar.gz
added compile time switch to put the tree views into a hpaned for owen to
Sun Mar 3 06:39:19 2002 Tim Janik <timj@gtk.org> * gtk/gtkfilesel.c: added compile time switch to put the tree views into a hpaned for owen to play with. * gtk/gtktreedatalist.c (_gtk_tree_data_list_header_free): * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_set_cell_data_func), (gtk_tree_view_column_finalize): * gtk/gtktreestore.c (gtk_tree_store_set_default_sort_func), (gtk_tree_store_set_sort_func), (gtk_tree_store_finalize): * gtk/gtktreeselection.c (gtk_tree_selection_finalize): * gtk/gtktreemodelsort.c (gtk_tree_model_sort_reset_default_sort_func), (gtk_tree_model_sort_set_default_sort_func), (gtk_tree_model_sort_set_sort_func): * gtk/gtkliststore.c (gtk_list_store_set_default_sort_func), (gtk_list_store_set_default_sort_func), (gtk_list_store_set_sort_func), (gtk_list_store_finalize): add reentrancy protection around destroy() function invocation. * gtk/gtktreeselection.c (gtk_tree_selection_set_select_function): fix destroy function invocation (which was missing).
Diffstat (limited to 'gtk/gtktreeviewcolumn.c')
-rw-r--r--gtk/gtktreeviewcolumn.c22
1 files changed, 14 insertions, 8 deletions
diff --git a/gtk/gtktreeviewcolumn.c b/gtk/gtktreeviewcolumn.c
index fb6d453a98..49cc8b9db5 100644
--- a/gtk/gtktreeviewcolumn.c
+++ b/gtk/gtktreeviewcolumn.c
@@ -329,8 +329,14 @@ gtk_tree_view_column_finalize (GObject *object)
for (list = tree_column->cell_list; list; list = list->next)
{
GtkTreeViewColumnCellInfo *info = (GtkTreeViewColumnCellInfo *) list->data;
- if (info->func_data && info->destroy)
- (info->destroy) (info->func_data);
+
+ if (info->destroy)
+ {
+ GtkDestroyNotify d = info->destroy;
+
+ info->destroy = NULL;
+ d (info->func_data);
+ }
gtk_tree_view_column_clear_attributes (tree_column, info->cell);
g_object_unref (G_OBJECT (info->cell));
g_free (info);
@@ -1333,13 +1339,13 @@ gtk_tree_view_column_set_cell_data_func (GtkTreeViewColumn *tree_column,
g_return_if_fail (info != NULL);
- if (func == info->func &&
- func_data == info->func_data &&
- destroy == info->destroy)
- return;
+ if (info->destroy)
+ {
+ GtkDestroyNotify d = info->destroy;
- if (info->func_data && info->destroy)
- (info->destroy) (info->func_data);
+ info->destroy = NULL;
+ d (info->func_data);
+ }
info->func = func;
info->func_data = func_data;