summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Blandford <jrb@redhat.com>2002-06-14 19:43:16 +0000
committerJonathan Blandford <jrb@src.gnome.org>2002-06-14 19:43:16 +0000
commit2696fbc98fc23b28f0c0cbfa2257b5cee8eec00e (patch)
treed970bc39626f7ff554c34112771230f06ead05a9
parent1dc1b2c93f55504e98e04e9a20a59eba69c54987 (diff)
downloadgdk-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--ChangeLog5
-rw-r--r--ChangeLog.pre-2-105
-rw-r--r--ChangeLog.pre-2-25
-rw-r--r--ChangeLog.pre-2-45
-rw-r--r--ChangeLog.pre-2-65
-rw-r--r--ChangeLog.pre-2-85
-rw-r--r--gtk/gtktreeview.c34
7 files changed, 54 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index 5aa5a63f2..20d75fcd3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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));
}