Example #1
0
        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);
        }
Example #2
0
        private Focusable GetFocusDelegate()
        {
            Focusable focusable = this;

            while (focusable != null && focusable.delegatesFocus)
            {
                focusable = Focusable.GetFirstFocusableChild(focusable as VisualElement);
            }
            return(focusable);
        }