Repository navigation
feat(ax): detect native tab-group membership on WindowInfo - #563
Closed
honeyspoon wants to merge 1 commit into
Closed
honeyspoon wants to merge 1 commit into
honeyspoon wants to merge 1 commit into
Conversation
Walk AXChildren for an AXTabGroup with an AXTabs list of >= 2 and expose the result on WindowInfo as `is_tabbed`. macOS only populates the tab group once a second tab is added, so detection flips on Cmd+T and clears when the user drags a tab back out. No behavior change. The field is populated once in from_ax_element and surfaces in `rift query windows` JSON; `#[serde(default)]` keeps old layout snapshots deserializable. Reactor keeps ignoring it until a follow-up patch wires it into discovery and the destroy path.
Author
|
Superseded by #560, which exposes the same primitive (as |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Expose a new
WindowInfo.is_tabbed: boolso the rest of rift can tell whether a window sits in a macOS native tab group of ≥ 2 tabs.Detection walks the window's
AXChildrenfor anAXTabGroupwhoseAXTabslist holds two or more entries. macOS only materializes that child once a second tab is added, so the field flips on Cmd+T and clears when the user drags a tab back out.Why
Standalone primitive. Native tab groups are the root cause behind a couple of long-standing weirdnesses (destroy path on space switch, tab siblings showing up in the layout tree). Landing the detection alone first keeps that follow-up work small and reviewable.
Compatibility
#[serde(default)]on the field, so old layout snapshots keep deserializing.WindowInfostruct literals updated withis_tabbed: false(production synthesis paths that never see an AX element, plus test fixtures).Testing
cargo build --releaseclean.cargo test --libpasses 801/802; the one failure (discovery_preserves_hidden_windows_on_their_original_same_display_space) is pre-existing onmainand unrelated to this change.