private static Focusable GetFirstFocusableChild(VisualElement ve) { int childCount = ve.hierarchy.childCount; int i = 0; Focusable result; while (i < childCount) { VisualElement visualElement = ve.hierarchy[i]; bool canGrabFocus = visualElement.canGrabFocus; if (!canGrabFocus) { bool flag = visualElement.hierarchy.parent != null && visualElement == visualElement.hierarchy.parent.contentContainer; bool flag2 = !visualElement.isCompositeRoot && !flag; if (flag2) { Focusable firstFocusableChild = Focusable.GetFirstFocusableChild(visualElement); bool flag3 = firstFocusableChild != null; if (flag3) { result = firstFocusableChild; return(result); } } i++; continue; } result = visualElement; return(result); } result = null; return(result); }
private Focusable GetFocusDelegate() { Focusable focusable = this; while (focusable != null && focusable.delegatesFocus) { focusable = Focusable.GetFirstFocusableChild(focusable as VisualElement); } return(focusable); }