id);
}
+GtkTreeViewColumn *
+get_effective_focus_column (GtkTreeView *treeview,
+ GtkTreeViewColumn *column)
+{
+ if (column == NULL)
+ column = get_visible_column (treeview, 0);
+
+ return column;
+}
+
void
_gtk_tree_view_accessible_update_focus_column (GtkTreeView *treeview,
GtkTreeViewColumn *old_focus,
if (state == GTK_CELL_RENDERER_FOCUSED)
{
- /* will add later */
+ GtkTreeViewColumn *focus_column;
+
+ focus_column = get_effective_focus_column (treeview, _gtk_tree_view_get_focus_column (treeview));
+
+ if (focus_column)
+ {
+ /* XXX: force creation here */
+ GtkCellAccessible *cell = peek_cell (accessible,
+ tree, node,
+ focus_column);
+
+ if (cell != NULL)
+ {
+ _gtk_cell_accessible_state_changed (cell, 0, state);
+ g_signal_emit_by_name (accessible, "active-descendant-changed", cell);
+ }
+ }
+
return;
}
if (state == GTK_CELL_RENDERER_FOCUSED)
{
- /* will add later */
+ GtkTreeViewColumn *focus_column;
+
+ focus_column = get_effective_focus_column (treeview, _gtk_tree_view_get_focus_column (treeview));
+
+ if (focus_column)
+ {
+ GtkCellAccessible *cell = peek_cell (accessible,
+ tree, node,
+ focus_column);
+
+ if (cell != NULL)
+ _gtk_cell_accessible_state_changed (cell, 0, state);
+ }
+
return;
}