a11y: create focus cell accessibles when they get focused

This commit is contained in:
Benjamin Otte 2012-02-11 04:43:15 +01:00
parent bf8d9ceb2f
commit 3827d75f64

View File

@ -1948,14 +1948,14 @@ _gtk_tree_view_accessible_update_focus_column (GtkTreeView *treeview,
if (new_focus) if (new_focus)
{ {
/* XXX: force creation here */
cell = peek_cell (accessible, cursor_tree, cursor_node, new_focus); cell = peek_cell (accessible, cursor_tree, cursor_node, new_focus);
if (cell != NULL) if (cell != NULL)
{
_gtk_cell_accessible_state_changed (cell, 0, GTK_CELL_RENDERER_FOCUSED); _gtk_cell_accessible_state_changed (cell, 0, GTK_CELL_RENDERER_FOCUSED);
else
cell = create_cell (treeview, accessible, cursor_tree, cursor_node, new_focus);
g_signal_emit_by_name (accessible, "active-descendant-changed", cell); g_signal_emit_by_name (accessible, "active-descendant-changed", cell);
} }
}
} }
void void
@ -1982,17 +1982,16 @@ _gtk_tree_view_accessible_add_state (GtkTreeView *treeview,
if (focus_column) if (focus_column)
{ {
/* XXX: force creation here */ GtkCellAccessible *cell;
GtkCellAccessible *cell = peek_cell (accessible,
tree, node,
focus_column);
cell = peek_cell (accessible, tree, node, focus_column);
if (cell != NULL) if (cell != NULL)
{
_gtk_cell_accessible_state_changed (cell, 0, state); _gtk_cell_accessible_state_changed (cell, 0, state);
else
cell = create_cell (treeview, accessible, tree, node, focus_column);
g_signal_emit_by_name (accessible, "active-descendant-changed", cell); g_signal_emit_by_name (accessible, "active-descendant-changed", cell);
} }
}
return; return;
} }