diff options
author | Jonathan Blandford <jrb@redhat.com> | 2002-06-14 19:43:16 +0000 |
---|---|---|
committer | Jonathan Blandford <jrb@src.gnome.org> | 2002-06-14 19:43:16 +0000 |
commit | 2696fbc98fc23b28f0c0cbfa2257b5cee8eec00e (patch) | |
tree | d970bc39626f7ff554c34112771230f06ead05a9 | |
parent | 1dc1b2c93f55504e98e04e9a20a59eba69c54987 (diff) | |
download | gdk-pixbuf-2696fbc98fc23b28f0c0cbfa2257b5cee8eec00e.tar.gz |
Fix bug #84268, where validate_rows sometimes didn't remove itself
Fri Jun 14 15:41:50 2002 Jonathan Blandford <jrb@redhat.com>
* gtk/gtktreeview.c: Fix bug #84268, where validate_rows sometimes
didn't remove itself correctly. Thanks to Dave Camp for the fix.
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | ChangeLog.pre-2-10 | 5 | ||||
-rw-r--r-- | ChangeLog.pre-2-2 | 5 | ||||
-rw-r--r-- | ChangeLog.pre-2-4 | 5 | ||||
-rw-r--r-- | ChangeLog.pre-2-6 | 5 | ||||
-rw-r--r-- | ChangeLog.pre-2-8 | 5 | ||||
-rw-r--r-- | gtk/gtktreeview.c | 34 |
7 files changed, 54 insertions, 10 deletions
@@ -1,3 +1,8 @@ +Fri Jun 14 15:41:50 2002 Jonathan Blandford <jrb@redhat.com> + + * gtk/gtktreeview.c: Fix bug #84268, where validate_rows sometimes + didn't remove itself correctly. Thanks to Dave Camp for the fix. + Fri Jun 14 15:09:11 2002 Jonathan Blandford <jrb@redhat.com> * gtk/gtktreeview.c (gtk_tree_view_set_adjustments): diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 5aa5a63f2..20d75fcd3 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,8 @@ +Fri Jun 14 15:41:50 2002 Jonathan Blandford <jrb@redhat.com> + + * gtk/gtktreeview.c: Fix bug #84268, where validate_rows sometimes + didn't remove itself correctly. Thanks to Dave Camp for the fix. + Fri Jun 14 15:09:11 2002 Jonathan Blandford <jrb@redhat.com> * gtk/gtktreeview.c (gtk_tree_view_set_adjustments): diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index 5aa5a63f2..20d75fcd3 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,8 @@ +Fri Jun 14 15:41:50 2002 Jonathan Blandford <jrb@redhat.com> + + * gtk/gtktreeview.c: Fix bug #84268, where validate_rows sometimes + didn't remove itself correctly. Thanks to Dave Camp for the fix. + Fri Jun 14 15:09:11 2002 Jonathan Blandford <jrb@redhat.com> * gtk/gtktreeview.c (gtk_tree_view_set_adjustments): diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 5aa5a63f2..20d75fcd3 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,8 @@ +Fri Jun 14 15:41:50 2002 Jonathan Blandford <jrb@redhat.com> + + * gtk/gtktreeview.c: Fix bug #84268, where validate_rows sometimes + didn't remove itself correctly. Thanks to Dave Camp for the fix. + Fri Jun 14 15:09:11 2002 Jonathan Blandford <jrb@redhat.com> * gtk/gtktreeview.c (gtk_tree_view_set_adjustments): diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 5aa5a63f2..20d75fcd3 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,8 @@ +Fri Jun 14 15:41:50 2002 Jonathan Blandford <jrb@redhat.com> + + * gtk/gtktreeview.c: Fix bug #84268, where validate_rows sometimes + didn't remove itself correctly. Thanks to Dave Camp for the fix. + Fri Jun 14 15:09:11 2002 Jonathan Blandford <jrb@redhat.com> * gtk/gtktreeview.c (gtk_tree_view_set_adjustments): diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 5aa5a63f2..20d75fcd3 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,8 @@ +Fri Jun 14 15:41:50 2002 Jonathan Blandford <jrb@redhat.com> + + * gtk/gtktreeview.c: Fix bug #84268, where validate_rows sometimes + didn't remove itself correctly. Thanks to Dave Camp for the fix. + Fri Jun 14 15:09:11 2002 Jonathan Blandford <jrb@redhat.com> * gtk/gtktreeview.c (gtk_tree_view_set_adjustments): diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c index 546d8c239..1e3a5abf8 100644 --- a/gtk/gtktreeview.c +++ b/gtk/gtktreeview.c @@ -263,7 +263,7 @@ static gboolean validate_row (GtkTreeView *tree_view, GtkTreePath *path); static void validate_visible_area (GtkTreeView *tree_view); static gboolean validate_rows_handler (GtkTreeView *tree_view); -static gboolean do_validate_rows (GtkTreeView *tree_view); +static gboolean validate_rows (GtkTreeView *tree_view); static gboolean presize_handler_callback (gpointer data); static void install_presize_handler (GtkTreeView *tree_view); static void install_scroll_sync_handler (GtkTreeView *tree_view); @@ -1494,7 +1494,7 @@ gtk_tree_view_size_request (GtkWidget *widget, /* we validate 50 rows initially just to make sure we have some size */ /* in practice, with a lot of static lists, this should get a good width */ - do_validate_rows (tree_view); + validate_rows (tree_view); gtk_tree_view_size_request_columns (tree_view); gtk_tree_view_update_size (GTK_TREE_VIEW (widget)); @@ -3970,10 +3970,8 @@ do_validate_rows (GtkTreeView *tree_view) g_assert (tree_view); if (tree_view->priv->tree == NULL) - { - tree_view->priv->validate_rows_timer = 0; return FALSE; - } + do { if (! GTK_RBNODE_FLAG_SET (tree_view->priv->tree->root, GTK_RBNODE_DESCENDANTS_INVALID)) @@ -4080,13 +4078,27 @@ do_validate_rows (GtkTreeView *tree_view) gtk_tree_view_dy_to_top_row (tree_view); if (path) gtk_tree_path_free (path); - if (! retval) - tree_view->priv->validate_rows_timer = 0; return retval; } static gboolean +validate_rows (GtkTreeView *tree_view) +{ + gboolean retval; + + retval = do_validate_rows (tree_view); + + if (! retval && tree_view->priv->validate_rows_timer) + { + g_source_remove (tree_view->priv->validate_rows_timer); + tree_view->priv->validate_rows_timer = 0; + } + + return retval; + } + +static gboolean validate_rows_handler (GtkTreeView *tree_view) { gboolean retval; @@ -4094,7 +4106,9 @@ validate_rows_handler (GtkTreeView *tree_view) GDK_THREADS_ENTER (); retval = do_validate_rows (tree_view); - + if (! retval) + tree_view->priv->validate_rows_timer = 0; + GDK_THREADS_LEAVE (); return retval; @@ -4260,7 +4274,7 @@ _gtk_tree_view_install_mark_rows_col_dirty (GtkTreeView *tree_view) } /** - * This function works synchronously (due to the while (do_validate_rows...) + * This function works synchronously (due to the while (validate_rows...) * loop). * * There was a check for column_type != GTK_TREE_VIEW_COLUMN_AUTOSIZE @@ -4276,7 +4290,7 @@ _gtk_tree_view_column_autosize (GtkTreeView *tree_view, _gtk_tree_view_column_cell_set_dirty (column, FALSE); do_presize_handler (tree_view); - while (do_validate_rows (tree_view)); + while (validate_rows (tree_view)); gtk_widget_queue_resize (GTK_WIDGET (tree_view)); } |