File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -91,6 +91,19 @@ final class MenuBarItem: Identifiable {
9191 return title == " Screen Recording " || title == " Audio and Video Controls "
9292 }
9393 var displayImage : NSImage ? { iconImage ?? applicationIcon }
94+ /// The activation path used by the item. WindowServer-backed items do not
95+ /// expose an Accessibility press action, but they can still be activated
96+ /// directly without moving the user's cursor or waiting for AX traversal.
97+ var activationStatusSymbolName : String {
98+ if supportsPressAction { return " hand.tap " }
99+ if windowID != nil { return " bolt.fill " }
100+ return " exclamationmark.triangle "
101+ }
102+ var activationStatusHelp : String {
103+ if supportsPressAction { return " Supports Accessibility press " }
104+ if windowID != nil { return " Uses fast WindowServer activation " }
105+ return " Accessibility activation unavailable "
106+ }
94107 var hasUsableDisplayIcon : Bool {
95108 displayImage != nil || NSImage ( systemSymbolName: fallbackSymbolName, accessibilityDescription: nil ) != nil
96109 }
Original file line number Diff line number Diff line change @@ -70,7 +70,8 @@ struct SettingsView: View {
7070 . font ( . caption)
7171 . foregroundStyle ( . secondary)
7272 } else {
73- Image ( systemName: item. supportsPressAction ? " hand.tap " : " exclamationmark.triangle " ) . help ( item. supportsPressAction ? " Supports Accessibility press " : " Accessibility activation unavailable " )
73+ Image ( systemName: item. activationStatusSymbolName)
74+ . help ( item. activationStatusHelp)
7475 }
7576 }
7677 }
You can’t perform that action at this time.
0 commit comments