+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
+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
+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
+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
+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
+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
+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
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++)
{
*/
static gboolean
-validate_rows_handler (GtkTreeView *tree_view)
+do_validate_rows (GtkTreeView *tree_view)
{
GtkRBTree *tree = NULL;
GtkRBNode *node = NULL;
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
{
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)
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;
_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));
}