Fix focus follows mouse over transient overlays - #2245
Open
Miyou wants to merge 1 commit into
Open
Conversation
vitorebatista
added a commit
to vitorebatista/AeroSpace-edge
that referenced
this pull request
Aug 27, 2026
…te sync state Sync state moves to upstream main @ c548c7f / 59 open PRs, reviewed 2026-08-27. Adds the newly ported upstream PRs (2244, 2232, 2211, 2228, 2225) to the already-backported list, and records this cycle's skips: focus-follows-mouse PRs (nikitabobko#2238/nikitabobko#2245, feature absent in the fork), nikitabobko#2220 (duplicate of the already-ported nikitabobko#2024), nikitabobko#2213 (deletes lastNativeFocusedWindowId, which fork PR #59 depends on), nikitabobko#2206 (competing implementation of nikitabobko#2225), and six deferred feature PRs. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WBcwRe3CktWZGGcHJHP4ds
Focus-follows-mouse currently uses Accessibility only to check whether any window exists under the pointer, then chooses a managed window by AeroSpace workspace geometry. When an unmanaged transient window overlays a managed window, the geometry lookup falls through to the managed window, focuses it, and dismisses the transient window. This reproduces with the Choosy browser picker and matches nikitabobko#2177. Resolve the AX element under the pointer to its containing CGWindowID and continue only when that exact ID belongs to a managed window on the active workspace. Once the exact hit establishes that the topmost window is managed and tiled, preserve the existing MRU floating-window preference described in nikitabobko#2151. This lets hidden floating Settings windows surface on hover without allowing Choosy or another unmanaged overlay to fall through. Keep the exact hit for floating, fullscreen, and other non-tiling managed windows. Restore the internal mruChildren accessor for the narrowed floating-window scan. Add regression tests for exact managed hits, hidden floating priority, overlapping floating windows, fullscreen windows, unmanaged overlays, and windows from another workspace. Automated verification: the six focused FocusFollowsMouseTest cases, lint, and the full ./test.sh gate pass.
Miyou
force-pushed
the
fix/focus-follows-mouse-transient-windows
branch
from
August 31, 2026 11:17
aa1217a to
9c7108a
Compare
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.
Addresses #2177 while preserving the floating-window priority described in #2151.
PR checklist
./test.shexits with zero exit code.