[gtk+] a11y: Update treeview focused status
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] a11y: Update treeview focused status
- Date: Sat, 11 Feb 2012 04:16:00 +0000 (UTC)
commit 07f8336dbd88372cf025e221fd48070cd17899c6
Author: Benjamin Otte <otte redhat com>
Date: Sat Feb 11 02:50:26 2012 +0100
a11y: Update treeview focused status
... when the cursor row changes. Also emit active-descendant-changed.
gtk/a11y/gtktreeviewaccessible.c | 44 ++++++++++++++++++++++++++++++++++++-
1 files changed, 42 insertions(+), 2 deletions(-)
---
diff --git a/gtk/a11y/gtktreeviewaccessible.c b/gtk/a11y/gtktreeviewaccessible.c
index af497b2..d6a4fb2 100644
--- a/gtk/a11y/gtktreeviewaccessible.c
+++ b/gtk/a11y/gtktreeviewaccessible.c
@@ -2080,6 +2080,16 @@ _gtk_tree_view_accessible_toggle_visibility (GtkTreeView *treeview,
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,
@@ -2105,7 +2115,24 @@ _gtk_tree_view_accessible_add_state (GtkTreeView *treeview,
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;
}
@@ -2143,7 +2170,20 @@ _gtk_tree_view_accessible_remove_state (GtkTreeView *treeview,
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;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]