summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOwen Taylor <otaylor@redhat.com>2002-03-05 15:30:52 +0000
committerOwen Taylor <otaylor@src.gnome.org>2002-03-05 15:30:52 +0000
commit3305137ff3e6cfadc13aa160ef29ef0620112be1 (patch)
treecf0fe4ee5c06ed48fb056ba3f89bae8108baf8d4
parent1e5210355eb9f71e5cacbd2c0c339c28c956136f (diff)
downloadgdk-pixbuf-3305137ff3e6cfadc13aa160ef29ef0620112be1.tar.gz
Don't use this same functions as idle callbacks and directly, to avoid
Tue Mar 5 10:29:09 2002 Owen Taylor <otaylor@redhat.com> * gtk/gtktreeview.c (do_presize_handler) gtk/gtktreeview.c (do_validate_rows): Don't use this same functions as idle callbacks and directly, to avoid threading deadlocks. (#72392, Scott Guilbeaux) * gtk/gtktable.c (gtk_table_size_request_init): Fix row/column confusion from recent patch. (#73505, Vitaly Tishkov.)
-rw-r--r--ChangeLog11
-rw-r--r--ChangeLog.pre-2-011
-rw-r--r--ChangeLog.pre-2-1011
-rw-r--r--ChangeLog.pre-2-211
-rw-r--r--ChangeLog.pre-2-411
-rw-r--r--ChangeLog.pre-2-611
-rw-r--r--ChangeLog.pre-2-811
-rw-r--r--gtk/gtktable.c2
-rw-r--r--gtk/gtktreeview.c36
9 files changed, 103 insertions, 12 deletions
diff --git a/ChangeLog b/ChangeLog
index 8003793a6..7c1d98388 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+Tue Mar 5 10:29:09 2002 Owen Taylor <otaylor@redhat.com>
+
+ * gtk/gtktreeview.c (do_presize_handler)
+ gtk/gtktreeview.c (do_validate_rows): Don't use this
+ same functions as idle callbacks and directly, to avoid
+ threading deadlocks. (#72392, Scott Guilbeaux)
+
+ * gtk/gtktable.c (gtk_table_size_request_init): Fix
+ row/column confusion from recent patch. (#73505,
+ Vitaly Tishkov.)
+
2002-03-04 Matthias Clasen <maclas@gmx.de>
* docs/tutorial/gtk-tut.sgml: Make color selection and selection
diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0
index 8003793a6..7c1d98388 100644
--- a/ChangeLog.pre-2-0
+++ b/ChangeLog.pre-2-0
@@ -1,3 +1,14 @@
+Tue Mar 5 10:29:09 2002 Owen Taylor <otaylor@redhat.com>
+
+ * gtk/gtktreeview.c (do_presize_handler)
+ gtk/gtktreeview.c (do_validate_rows): Don't use this
+ same functions as idle callbacks and directly, to avoid
+ threading deadlocks. (#72392, Scott Guilbeaux)
+
+ * gtk/gtktable.c (gtk_table_size_request_init): Fix
+ row/column confusion from recent patch. (#73505,
+ Vitaly Tishkov.)
+
2002-03-04 Matthias Clasen <maclas@gmx.de>
* docs/tutorial/gtk-tut.sgml: Make color selection and selection
diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10
index 8003793a6..7c1d98388 100644
--- a/ChangeLog.pre-2-10
+++ b/ChangeLog.pre-2-10
@@ -1,3 +1,14 @@
+Tue Mar 5 10:29:09 2002 Owen Taylor <otaylor@redhat.com>
+
+ * gtk/gtktreeview.c (do_presize_handler)
+ gtk/gtktreeview.c (do_validate_rows): Don't use this
+ same functions as idle callbacks and directly, to avoid
+ threading deadlocks. (#72392, Scott Guilbeaux)
+
+ * gtk/gtktable.c (gtk_table_size_request_init): Fix
+ row/column confusion from recent patch. (#73505,
+ Vitaly Tishkov.)
+
2002-03-04 Matthias Clasen <maclas@gmx.de>
* docs/tutorial/gtk-tut.sgml: Make color selection and selection
diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2
index 8003793a6..7c1d98388 100644
--- a/ChangeLog.pre-2-2
+++ b/ChangeLog.pre-2-2
@@ -1,3 +1,14 @@
+Tue Mar 5 10:29:09 2002 Owen Taylor <otaylor@redhat.com>
+
+ * gtk/gtktreeview.c (do_presize_handler)
+ gtk/gtktreeview.c (do_validate_rows): Don't use this
+ same functions as idle callbacks and directly, to avoid
+ threading deadlocks. (#72392, Scott Guilbeaux)
+
+ * gtk/gtktable.c (gtk_table_size_request_init): Fix
+ row/column confusion from recent patch. (#73505,
+ Vitaly Tishkov.)
+
2002-03-04 Matthias Clasen <maclas@gmx.de>
* docs/tutorial/gtk-tut.sgml: Make color selection and selection
diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4
index 8003793a6..7c1d98388 100644
--- a/ChangeLog.pre-2-4
+++ b/ChangeLog.pre-2-4
@@ -1,3 +1,14 @@
+Tue Mar 5 10:29:09 2002 Owen Taylor <otaylor@redhat.com>
+
+ * gtk/gtktreeview.c (do_presize_handler)
+ gtk/gtktreeview.c (do_validate_rows): Don't use this
+ same functions as idle callbacks and directly, to avoid
+ threading deadlocks. (#72392, Scott Guilbeaux)
+
+ * gtk/gtktable.c (gtk_table_size_request_init): Fix
+ row/column confusion from recent patch. (#73505,
+ Vitaly Tishkov.)
+
2002-03-04 Matthias Clasen <maclas@gmx.de>
* docs/tutorial/gtk-tut.sgml: Make color selection and selection
diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6
index 8003793a6..7c1d98388 100644
--- a/ChangeLog.pre-2-6
+++ b/ChangeLog.pre-2-6
@@ -1,3 +1,14 @@
+Tue Mar 5 10:29:09 2002 Owen Taylor <otaylor@redhat.com>
+
+ * gtk/gtktreeview.c (do_presize_handler)
+ gtk/gtktreeview.c (do_validate_rows): Don't use this
+ same functions as idle callbacks and directly, to avoid
+ threading deadlocks. (#72392, Scott Guilbeaux)
+
+ * gtk/gtktable.c (gtk_table_size_request_init): Fix
+ row/column confusion from recent patch. (#73505,
+ Vitaly Tishkov.)
+
2002-03-04 Matthias Clasen <maclas@gmx.de>
* docs/tutorial/gtk-tut.sgml: Make color selection and selection
diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8
index 8003793a6..7c1d98388 100644
--- a/ChangeLog.pre-2-8
+++ b/ChangeLog.pre-2-8
@@ -1,3 +1,14 @@
+Tue Mar 5 10:29:09 2002 Owen Taylor <otaylor@redhat.com>
+
+ * gtk/gtktreeview.c (do_presize_handler)
+ gtk/gtktreeview.c (do_validate_rows): Don't use this
+ same functions as idle callbacks and directly, to avoid
+ threading deadlocks. (#72392, Scott Guilbeaux)
+
+ * gtk/gtktable.c (gtk_table_size_request_init): Fix
+ row/column confusion from recent patch. (#73505,
+ Vitaly Tishkov.)
+
2002-03-04 Matthias Clasen <maclas@gmx.de>
* docs/tutorial/gtk-tut.sgml: Make color selection and selection
diff --git a/gtk/gtktable.c b/gtk/gtktable.c
index d94626357..1709e500e 100644
--- a/gtk/gtktable.c
+++ b/gtk/gtktable.c
@@ -953,7 +953,7 @@ gtk_table_size_request_init (GtkTable *table)
for (row = 0; row < table->nrows; row++)
{
table->rows[row].requisition = 0;
- table->cols[row].expand = FALSE;
+ table->rows[row].expand = FALSE;
}
for (col = 0; col < table->ncols; col++)
{
diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c
index 91c1bd73a..d935d1c93 100644
--- a/gtk/gtktreeview.c
+++ b/gtk/gtktreeview.c
@@ -3893,7 +3893,7 @@ validate_visible_area (GtkTreeView *tree_view)
*/
static gboolean
-validate_rows_handler (GtkTreeView *tree_view)
+do_validate_rows (GtkTreeView *tree_view)
{
GtkRBTree *tree = NULL;
GtkRBNode *node = NULL;
@@ -3904,15 +3904,11 @@ validate_rows_handler (GtkTreeView *tree_view)
gint i = 0;
g_assert (tree_view);
- GDK_THREADS_ENTER ();
-
if (tree_view->priv->tree == NULL)
{
tree_view->priv->validate_rows_timer = 0;
- GDK_THREADS_LEAVE ();
return FALSE;
}
-
do
{
@@ -3991,18 +3987,26 @@ validate_rows_handler (GtkTreeView *tree_view)
if (! retval)
tree_view->priv->validate_rows_timer = 0;
- GDK_THREADS_LEAVE ();
-
return retval;
}
static gboolean
-presize_handler_callback (gpointer data)
+validate_rows_handler (GtkTreeView *tree_view)
{
- GtkTreeView *tree_view = GTK_TREE_VIEW (data);
+ gboolean retval;
GDK_THREADS_ENTER ();
+ retval = do_validate_rows (tree_view);
+
+ GDK_THREADS_LEAVE ();
+
+ return retval;
+}
+
+static gboolean
+do_presize_handler (GtkTreeView *tree_view)
+{
if (tree_view->priv->mark_rows_col_dirty)
{
if (tree_view->priv->tree)
@@ -4012,6 +4016,16 @@ presize_handler_callback (gpointer data)
validate_visible_area (tree_view);
tree_view->priv->presize_handler_timer = 0;
+ return FALSE;
+}
+
+static gboolean
+presize_handler_callback (gpointer data)
+{
+ GDK_THREADS_ENTER ();
+
+ do_presize_handler (GTK_TREE_VIEW (data));
+
GDK_THREADS_LEAVE ();
return FALSE;
@@ -7655,8 +7669,8 @@ gtk_tree_view_column_autosize (GtkTreeView *tree_view,
_gtk_tree_view_column_cell_set_dirty (column, FALSE);
- presize_handler_callback (tree_view);
- while (validate_rows_handler (tree_view));
+ do_presize_handler (tree_view);
+ while (do_validate_rows (tree_view));
gtk_widget_queue_resize (GTK_WIDGET (tree_view));
}