undo merging of the separate loop setting cell data with cell drawing loop

2005-06-18  Kristian Rietveld  <kris@gtk.org>

	* gtk/gtktreeview.c (gtk_tree_view_bin_expose): undo merging
	of the separate loop setting cell data with cell drawing loop
	(introduced in revision 1.280), since this breaks focus handling
	wrt special cells.
This commit is contained in:
Kristian Rietveld 2005-06-18 12:11:26 +00:00 committed by Kristian Rietveld
parent 8e3ea42aba
commit 6db99a9b8f
4 changed files with 37 additions and 6 deletions

View File

@ -1,3 +1,10 @@
2005-06-18 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_bin_expose): undo merging
of the separate loop setting cell data with cell drawing loop
(introduced in revision 1.280), since this breaks focus handling
wrt special cells.
Sat Jun 18 04:22:51 2005 Manish Singh <yosh@gimp.org>
* gdk/gdkcursor.h: remove GDK_CURSOR and GDK_IS_CURSOR, instance

View File

@ -1,3 +1,10 @@
2005-06-18 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_bin_expose): undo merging
of the separate loop setting cell data with cell drawing loop
(introduced in revision 1.280), since this breaks focus handling
wrt special cells.
Sat Jun 18 04:22:51 2005 Manish Singh <yosh@gimp.org>
* gdk/gdkcursor.h: remove GDK_CURSOR and GDK_IS_CURSOR, instance

View File

@ -1,3 +1,10 @@
2005-06-18 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_bin_expose): undo merging
of the separate loop setting cell data with cell drawing loop
(introduced in revision 1.280), since this breaks focus handling
wrt special cells.
Sat Jun 18 04:22:51 2005 Manish Singh <yosh@gimp.org>
* gdk/gdkcursor.h: remove GDK_CURSOR and GDK_IS_CURSOR, instance

View File

@ -3559,6 +3559,22 @@ gtk_tree_view_bin_expose (GtkWidget *widget,
parity = _gtk_rbtree_node_find_parity (tree, node);
/* we *need* to set cell data on all cells before the call
* to _has_special_cell, else _has_special_cell() does not
* return a correct value.
*/
for (list = (rtl ? g_list_last (tree_view->priv->columns) : g_list_first (tree_view->priv->columns));
list;
list = (rtl ? list->prev : list->next))
{
GtkTreeViewColumn *column = list->data;
gtk_tree_view_column_cell_set_cell_data (column,
tree_view->priv->model,
&iter,
GTK_RBNODE_FLAG_SET (node, GTK_RBNODE_IS_PARENT),
node->children?TRUE:FALSE);
}
has_special_cell = gtk_tree_view_has_special_cell (tree_view);
for (list = (rtl ? g_list_last (tree_view->priv->columns) : g_list_first (tree_view->priv->columns));
@ -3604,12 +3620,6 @@ gtk_tree_view_bin_expose (GtkWidget *widget,
continue;
}
gtk_tree_view_column_cell_set_cell_data (column,
tree_view->priv->model,
&iter,
GTK_RBNODE_FLAG_SET (node, GTK_RBNODE_IS_PARENT),
node->children?TRUE:FALSE);
/* Select the detail for drawing the cell. relevant
* factors are parity, sortedness, and whether to
* display rules.