fix(xwm): defer X11 resizing until fullscreen - #193
Draft
lutyjj wants to merge 1 commit into
Draft
Conversation
Mapping an X11 window immediately resized its outer geometry to the output. Decorated Wine windows could then expose a smaller rendering child, causing the WSI bypass geometry check to reject the surface. Preserve the requested geometry while mapping and enforce the output size through the existing fullscreen focus path. Apply that policy independently of game ID because classification can arrive after the fullscreen request.
Contributor
Author
|
Putting this into draft for now. It changes map-time geometry handling for every X11 window and makes fullscreen sizing independent of game ID, so I want to test a few more windowed and fullscreen applications first. |
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.
Fixes #188.
map_window_request()resizes every X11 window to the output size before it asks for fullscreen. With Resonance, Wine's toplevel becomes 3840x2160 while the actual rendering child ends up at 3834x2128. That mismatch tripscan_bypass_xwayland(), the bypass gets rejected, and the stream stays black.The fix leaves the window geometry alone at map time and lets the existing
enforce_fullscreen_geometry()path resize it once it is actually fullscreen.Also drops the
has_game_id()check. Steam Big Picture requests fullscreen while its app ID is still 0, so keeping that check leaves Steam at 1280x800 instead of filling the output.Tested end to end at 4K: both Steam login and Big Picture still work correctly and fill in the screen, and the faulty game (A Plague Tale Legacy: Resonance) launches at the correct size too.