private Accessible FindFocusedAccessible (Accessible root)
{
if (root.StateSet.Contains (StateType.Focused))
return root;
if (root.StateSet.Contains (StateType.ManagesDescendants))
return null;
int count = root.Children.Count;
for (int i = 0; i < count; i++) {
Accessible focus = FindFocusedAccessible (root.Children [i]);
if (focus != null)
return focus;
}
return null;
}