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.)
This commit is contained in:
Owen Taylor 2002-03-05 15:30:52 +00:00 committed by Owen Taylor
parent 1e5210355e
commit 3305137ff3
9 changed files with 104 additions and 13 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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++)
{

View File

@ -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;
return retval;
}
static gboolean
validate_rows_handler (GtkTreeView *tree_view)
{
gboolean retval;
GDK_THREADS_ENTER ();
retval = do_validate_rows (tree_view);
GDK_THREADS_LEAVE ();
return retval;
}
static gboolean
presize_handler_callback (gpointer data)
do_presize_handler (GtkTreeView *tree_view)
{
GtkTreeView *tree_view = GTK_TREE_VIEW (data);
GDK_THREADS_ENTER ();
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));
}