@@ -6,11 +6,12 @@ use accessibility::{AXAttribute, AXUIElement, AXUIElementAttributes};
66use accessibility_sys:: {
77 AXUIElementCopyMultipleAttributeValues , AXValueCreate , AXValueGetValue , AXValueRef ,
88 kAXButtonRole, kAXCellRole, kAXCheckBoxRole, kAXComboBoxRole, kAXContentListSubrole,
9- kAXErrorSuccess, kAXGroupRole, kAXHiddenAttribute, kAXImageRole, kAXListRole, kAXMenuItemRole,
10- kAXMenuRole, kAXPopUpButtonRole, kAXPositionAttribute, kAXPressAction, kAXRoleAttribute,
11- kAXRowRole, kAXScrollAreaRole, kAXScrollBarRole, kAXSelectedTextRangeAttribute,
12- kAXSizeAttribute, kAXStaticTextRole, kAXTextAreaRole, kAXTextFieldRole, kAXTitleAttribute,
13- kAXValueTypeCFRange, kAXValueTypeCGPoint, kAXValueTypeCGSize, kAXWindowRole,
9+ kAXErrorSuccess, kAXGroupRole, kAXHiddenAttribute, kAXImageRole, kAXListRole,
10+ kAXMenuButtonRole, kAXMenuItemRole, kAXMenuRole, kAXPopUpButtonRole, kAXPositionAttribute,
11+ kAXPressAction, kAXRoleAttribute, kAXRowRole, kAXScrollAreaRole, kAXScrollBarRole,
12+ kAXSelectedTextRangeAttribute, kAXSizeAttribute, kAXStaticTextRole, kAXTextAreaRole,
13+ kAXTextFieldRole, kAXTitleAttribute, kAXValueTypeCFRange, kAXValueTypeCGPoint,
14+ kAXValueTypeCGSize, kAXWindowRole,
1415} ;
1516use core_foundation:: {
1617 array:: { CFArray , CFArrayRef } ,
@@ -1049,7 +1050,12 @@ fn traverse_elements(
10491050 }
10501051 _ => ( ) ,
10511052 } ,
1052- kAXMenuRole => {
1053+ kAXMenuRole
1054+ if element
1055+ . parent ( )
1056+ . and_then ( |p| p. role ( ) )
1057+ . is_ok_and ( |r| r == kAXMenuButtonRole) =>
1058+ {
10531059 let _ = result_tx. send ( ElementSignal :: ClearOnPopUp ) ;
10541060 finish_early = true ;
10551061 }
0 commit comments