Skip to content

feat(uia): all chrome buttons + settings controls in the tree (invokable)#52

Merged
yeroo merged 1 commit into
mainfrom
feat/uia-buttons-and-settings-in-tree
Jul 9, 2026
Merged

feat(uia): all chrome buttons + settings controls in the tree (invokable)#52
yeroo merged 1 commit into
mainfrom
feat/uia-buttons-and-settings-in-tree

Conversation

@yeroo

@yeroo yeroo commented Jul 9, 2026

Copy link
Copy Markdown
Owner

Completes "why can't I iterate all my controls / buttons with Caps+arrows" — the UIA tree now includes every chrome button and, when open, every settings control, each a focusable, invokable Button.

What's in the tree now

[Pane] agwinterm
 ├─ [Document] terminal
 ├─ [List] Sessions → items
 ├─ [Button] Toggle sidebar / Next attention / Scratch terminal / Split pane /
 │           Quick terminal / Settings / New workspace / New session / Flagged view
 └─ [Group] Settings   (while open)
      ├─ [Button] Scroll speed, 3
      ├─ [Button] Right-click pastes clipboard, on
      └─ … every control, named with its value
  • New UiaButton element implements the Invoke pattern — UIA Invoke runs the same action a click/keypress would (ChromeAction / the settings activation)
  • Settings controls named with their current value so a reader announces state

Verified (UIAutomationClient)

  • Tree lists all 9 chrome buttons
  • InvokePattern.Invoke() on the Settings button opens the dialog
  • The Settings group then exposes every control with its value

110/110 Core, 38/38 Pty. Pairs with #51 (keyboard focus/Tab inside the dialog).

🤖 Generated with Claude Code

…ble)

Completes "iterate all controls with Caps+arrows": the UIA tree now includes
every chrome button and, when open, every settings control — each a focusable,
invokable Button element.

- Chrome buttons (Toggle sidebar, Next attention, Scratch terminal, Split pane,
  Quick terminal, Settings, New workspace, New session, Flagged view) are root
  children with screen rects from _titleButtons/_footerButtons.
- Settings dialog controls appear under a [Group "Settings"] while open, each
  named with its value ("Scroll speed, 3", "Right-click pastes clipboard, on").
- New UiaButton element implements the Invoke pattern; UIA Invoke runs the same
  action a click/keypress would (ChromeAction / the settings activation). Two
  new node kinds (ChromeButton, SettingsControl/SettingsGroup).

Verified with a UIAutomationClient probe: the tree lists all 9 chrome buttons;
InvokePattern.Invoke() on the Settings button opens the dialog; the Settings
group then exposes every control with its value. 110/110 Core, 38/38 Pty.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@yeroo
yeroo merged commit 7567692 into main Jul 9, 2026
1 check passed
@yeroo
yeroo deleted the feat/uia-buttons-and-settings-in-tree branch July 9, 2026 14:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant