steamcompmgr: place a screen-sized focus window at the origin - #2297
Open
matte-schwartz wants to merge 1 commit into
Open
steamcompmgr: place a screen-sized focus window at the origin#2297matte-schwartz wants to merge 1 commit into
matte-schwartz wants to merge 1 commit into
Conversation
Xwayland turns pointer positions into root coordinates and X confines the pointer to the screen, so a focus window as large as the screen never sees input past whatever edge it hangs off. Nothing bounds checked it. It only kept working while focus windows were pinned near the origin, first by the snap a563226 dropped and then by the orphaned nudge that 33f3776 removed, so a client that centers itself and then grows to the screen size in place is now left hanging off it. Place a window exactly that size at the origin once, re-armed only when a resize or a screen size change makes covering the screen mean something different, so a client that moves the window afterwards keeps its position rather than fighting us. Fixes: ValveSoftware#2294
matte-schwartz
force-pushed
the
focus-window-bounds-clamp
branch
from
August 4, 2026 06:10
f4776ca to
46a373b
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.
Xwayland turns pointer positions into root coordinates and X confines the pointer to the screen, so a focus window as large as the screen never sees input past whatever edge it hangs off. Nothing bounds checked it. It only kept working because the focus window was pinned at or beside the origin, first by the snap a563226 dropped and then by the orphaned nudge that 33f3776 removed, so a client that centres itself and then grows to the screen size in place is now left hanging off it.
Put such a window at the origin, the only place all of it can be reached. Anything smaller keeps the position it asked for, since it is reachable wherever the client put it, and compositing already ignores the focus window's origin so none of this costs anything on screen. We place it once, and drop that once a resize or a screen size change makes covering the screen mean something different, so a client that just drags the window off keeps it rather than fighting us forever.
Fixes: #2294