Skip to content

Commit da4f5bd

Browse files
committed
fix: constrain menu parent role
1 parent aba9335 commit da4f5bd

1 file changed

Lines changed: 11 additions & 6 deletions

File tree

src/ax_element.rs

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,12 @@ use accessibility::{AXAttribute, AXUIElement, AXUIElementAttributes};
66
use 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
};
1516
use core_foundation::{
1617
array::{CFArray, CFArrayRef},
@@ -1050,7 +1051,11 @@ fn traverse_elements(
10501051
}
10511052
_ => (),
10521053
},
1053-
kAXMenuRole => {
1054+
kAXMenuRole
1055+
if element.parent().and_then(|p| p.role()).is_ok_and(|r| {
1056+
r == kAXMenuButtonRole || r == kAXButtonRole || r == kAXCellRole
1057+
}) =>
1058+
{
10541059
let _ = result_tx.send(ElementSignal::StartPopup);
10551060
is_popup = true;
10561061
}

0 commit comments

Comments
 (0)