Linux: Ensure WindowData minimized/maximized are mutually exclusive#76868
Merged
akien-mga merged 1 commit intogodotengine:masterfrom May 9, 2023
Merged
Linux: Ensure WindowData minimized/maximized are mutually exclusive#76868akien-mga merged 1 commit intogodotengine:masterfrom
akien-mga merged 1 commit intogodotengine:masterfrom
Conversation
The window manager can break the assumption that fullscreen/maximized/minimized values are mutually exclusive.
bruvzg
approved these changes
May 9, 2023
Member
|
Thanks! |
Member
|
Cherry-picked for 4.0.3. |
|
Still happening on 4.0.3, every time you focus on editable text |
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.
This fixes #72728.
The window manager can break the assumption that fullscreen/maximized/minimized values are mutually exclusive. This appears to happen when the window is in progress transitioning from minimized to maximized.
The display server code relies on this assumption for proper state management, in particular for
DisplayServerX11::_validate_mode_on_map's "if" cases.This PR ensures when querying the window manager in method
DisplayServerX11::_window_changed, only one value can be true. The PR prioritizes fullscreen, maximum, and then minimized states, opting to assume the window is visible for conflicting values.