{
auto scrollableParent = GetScrollableParent(accessible);
- if (scrollableParent == nullptr) return true;
+ if(scrollableParent == nullptr)
+ {
+ return true;
+ }
auto scrollableParentExtents = scrollableParent->GetExtents(CoordinateType::WINDOW);
auto component = dynamic_cast<Component*>(accessible);
- if (component && !scrollableParentExtents.Intersects(component->GetExtents(CoordinateType::WINDOW)))
+ if(component && !scrollableParentExtents.Intersects(component->GetExtents(CoordinateType::WINDOW)))
{
return false;
}
return true;
}
-static bool IsChildVisibleInScrollableParent(Accessible *start, Accessible *accessible)
+static bool IsChildVisibleInScrollableParent(Accessible* start, Accessible* accessible)
{
return IsVisibleInScrollableParent(start) || IsVisibleInScrollableParent(accessible);
}
if(controledBy->IsProxy() || IsObjectAcceptable(controledBy))
{
- LOG() << "CalculateNavigableAccessibleAtPoint: found: " << MakeIndent(maxRecursionDepth) << GetComponentInfo(rootComponent);
+ LOG() << "CalculateNavigableAccessibleAtPoint: found: " << MakeIndent(maxRecursionDepth) << GetComponentInfo(rootComponent) << " " << controledBy->IsProxy();
return controledBy;
}
}
if(component)
{
recurse = component->IsProxy();
- if (recurse)
+ if(recurse)
{
Accessible* parent = component->GetParent();
- deputy = IsObjectAcceptable(parent) ? parent : nullptr;
+ while(parent && parent != accessible && !deputy)
+ {
+ if(IsObjectAcceptable(parent))
+ {
+ deputy = parent;
+ LOG() << "deputy: " << GetComponentInfo(dynamic_cast<Component*>(deputy));
+ break;
+ }
+ parent = parent->GetParent();
+ }
}
}
return {component, recurse, deputy};