/// <summary> /// Handle Focus Change event /// </summary> /// <param name="message"></param> private void onFocusChangedEventForSelectingElement(EventMessage message) { // only when focus is chosen for highlight if (message.EventId == EventType.UIA_AutomationFocusChangedEventId) { // exclude tooltip since it is transient UI. if (IsStarted && message.Element != null) { var element = GetElementBasedOnScope(message.Element); if (element != null && element.IsRootElement() == false && element.ControlTypeId != ControlType.UIA_ToolTipControlTypeId && element.IsSameUIElement(this.SelectedElementRuntimeId, this.SelectedBoundingRectangle, this.SelectedControlTypeId, this.SelectedName) == false) { this.SelectedElementRuntimeId = element.RuntimeId; this.SelectedBoundingRectangle = element.BoundingRectangle; this.SelectedControlTypeId = element.ControlTypeId; this.SelectedName = element.Name; this.SetElement?.Invoke(element); } } else { message.Dispose(); } } }
/// <summary> /// Handle Focus Change event /// </summary> /// <param name="message"></param> private void onFocusChangedEventForSelectingElement(EventMessage message) { // only when focus is chosen for highlight if (message.EventId == EventType.UIA_AutomationFocusChangedEventId) { // exclude tooltip since it is transient UI. if (IsStarted && message.Element != null) { var element = GetElementBasedOnScope(message.Element); if (element?.ControlTypeId != ControlType.UIA_ToolTipControlTypeId) { SelectElementIfItIsEligible(element); } } else { message.Dispose(); } } }