a11y: Improve table_is_row_selected()

This commit is contained in:
Benjamin Otte
2011-12-12 17:59:36 +01:00
parent 3112679a5e
commit 20b56689c5

View File

@ -806,22 +806,23 @@ gtk_tree_view_accessible_is_row_selected (AtkTable *table,
gint row) gint row)
{ {
GtkWidget *widget; GtkWidget *widget;
GtkTreeView *tree_view; GtkRBTree *tree;
GtkTreeSelection *selection; GtkRBNode *node;
GtkTreeIter iter;
if (row < 0)
return FALSE;
widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (table)); widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (table));
if (widget == NULL) if (widget == NULL)
return FALSE; return FALSE;
if (row < 0) if (!_gtk_rbtree_find_index (_gtk_tree_view_get_rbtree (GTK_TREE_VIEW (widget)),
row,
&tree,
&node))
return FALSE; return FALSE;
tree_view = GTK_TREE_VIEW (widget); return GTK_RBNODE_FLAG_SET (node, GTK_RBNODE_IS_SELECTED);
selection = gtk_tree_view_get_selection (tree_view);
set_iter_nth_row (tree_view, &iter, row);
return gtk_tree_selection_iter_is_selected (selection, &iter);
} }
static gboolean static gboolean