Bug #497218. Emit "active-descendant-changed" when focus first comes into

2008-01-11  Li Yuan  <li.yuan@sun.com>

        * gailtreeview.c: (gail_tree_view_ref_child),
        (idle_cursor_changed):
        Bug #497218. Emit "active-descendant-changed" when focus first comes
        into treeview. Add/remove ATK_STATE_FOCUSED when cursor changes.

svn path=/trunk/; revision=19350
This commit is contained in:
Li Yuan 2008-01-11 09:48:23 +00:00 committed by Li Yuan
parent be9d0fa25d
commit fe9254565a
2 changed files with 15 additions and 1 deletions

View File

@ -1,3 +1,10 @@
2008-01-11 Li Yuan <li.yuan@sun.com>
* gailtreeview.c: (gail_tree_view_ref_child),
(idle_cursor_changed):
Bug #497218. Emit "active-descendant-changed" when focus first comes
into treeview. Add/remove ATK_STATE_FOCUSED when cursor changes.
2008-01-11 Li Yuan <li.yuan@sun.com>
* gailtreeview.c: (gail_tree_view_get_n_rows):

View File

@ -987,6 +987,9 @@ gail_tree_view_ref_child (AtkObject *obj,
{
gailview->focus_cell = g_object_ref (cell);
gail_cell_add_state (cell, ATK_STATE_FOCUSED, FALSE);
g_signal_emit_by_name (gailview,
"active-descendant-changed",
cell);
}
}
g_list_free (renderer_list);
@ -2625,12 +2628,16 @@ idle_cursor_changed (gpointer data)
if (gail_tree_view->focus_cell)
{
gail_cell_remove_state (GAIL_CELL (gail_tree_view->focus_cell), ATK_STATE_ACTIVE, FALSE);
gail_cell_remove_state (GAIL_CELL (gail_tree_view->focus_cell), ATK_STATE_FOCUSED, FALSE);
g_object_unref (gail_tree_view->focus_cell);
}
gail_tree_view->focus_cell = cell;
if (GTK_WIDGET_HAS_FOCUS (widget))
gail_cell_add_state (GAIL_CELL (cell), ATK_STATE_ACTIVE, FALSE);
{
gail_cell_add_state (GAIL_CELL (cell), ATK_STATE_ACTIVE, FALSE);
gail_cell_add_state (GAIL_CELL (cell), ATK_STATE_FOCUSED, FALSE);
}
g_signal_emit_by_name (gail_tree_view,
"active-descendant-changed",
cell);