summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2012-02-11 02:38:48 +0100
committerBenjamin Otte <otte@redhat.com>2012-02-11 02:38:48 +0100
commitf90ff5d50b9650470a50bfb822d9f4968915c390 (patch)
treeebf57eaa146552ccb72b42931d707d73244680d6
parenta4559f1e19d10be801ac6e954d58b34a12ac2d4f (diff)
downloadgtk+-f90ff5d50b9650470a50bfb822d9f4968915c390.tar.gz
treeview: Notify accessible about focus changes
-rw-r--r--gtk/a11y/gtktreeviewaccessible.c12
-rw-r--r--gtk/gtktreeview.c9
2 files changed, 21 insertions, 0 deletions
diff --git a/gtk/a11y/gtktreeviewaccessible.c b/gtk/a11y/gtktreeviewaccessible.c
index adb3a0bc49..af497b2dcf 100644
--- a/gtk/a11y/gtktreeviewaccessible.c
+++ b/gtk/a11y/gtktreeviewaccessible.c
@@ -2103,6 +2103,12 @@ _gtk_tree_view_accessible_add_state (GtkTreeView *treeview,
accessible = GTK_TREE_VIEW_ACCESSIBLE (obj);
+ if (state == GTK_CELL_RENDERER_FOCUSED)
+ {
+ /* will add later */
+ return;
+ }
+
for (i = 0; i < gtk_tree_view_get_n_columns (treeview); i++)
{
GtkCellAccessible *cell = peek_cell (accessible,
@@ -2135,6 +2141,12 @@ _gtk_tree_view_accessible_remove_state (GtkTreeView *treeview,
accessible = GTK_TREE_VIEW_ACCESSIBLE (obj);
+ if (state == GTK_CELL_RENDERER_FOCUSED)
+ {
+ /* will add later */
+ return;
+ }
+
for (i = 0; i < gtk_tree_view_get_n_columns (treeview); i++)
{
GtkCellAccessible *cell = peek_cell (accessible,
diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c
index decf78b0c0..d1b641bd0e 100644
--- a/gtk/gtktreeview.c
+++ b/gtk/gtktreeview.c
@@ -13188,6 +13188,10 @@ gtk_tree_view_real_set_cursor (GtkTreeView *tree_view,
{
if (!(flags & CURSOR_INVALID) && tree_view->priv->cursor_node)
{
+ _gtk_tree_view_accessible_remove_state (tree_view,
+ tree_view->priv->cursor_tree,
+ tree_view->priv->cursor_node,
+ GTK_CELL_RENDERER_FOCUSED);
_gtk_tree_view_queue_draw_node (tree_view,
tree_view->priv->cursor_tree,
tree_view->priv->cursor_node,
@@ -13250,6 +13254,11 @@ gtk_tree_view_real_set_cursor (GtkTreeView *tree_view,
tree_view->priv->cursor_node,
NULL);
}
+
+ _gtk_tree_view_accessible_add_state (tree_view,
+ tree_view->priv->cursor_tree,
+ tree_view->priv->cursor_node,
+ GTK_CELL_RENDERER_FOCUSED);
}
g_signal_emit (tree_view, tree_view_signals[CURSOR_CHANGED], 0);