Repository navigation
Conversation
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.
On tiling Wayland compositors, a window created with
resizable(false)can open larger than its requested inner size. Tao initially leaves the native GTK window resizable and applies the requested flag only after the first configure event. Hyprland can assign a tiled allocation in the meantime, which GTK then retains when the window becomes non-resizable.This change applies the requested resizable state before mapping ordinary windows. Initially maximized windows retain the existing first-configure sequence, including maximizing before applying the resizable flag, to preserve the Wayland buffer-size handling.
Adds a patch changeset and a display-dependent regression test that checks the native GTK resizable flag before mapping and verifies the requested logical size after mapping. No public API changes.
Reproduction
Create an initially hidden, undecorated window with no explicit min/max constraints, then show it on Hyprland:
Before the fix, our application intermittently received a larger tiled allocation instead of 280×404. Applying the native non-resizable state before mapping kept the requested size and allowed the compositor to float the window.
Verification
cargo fmt --all -- --check: passed.cargo test --lockedon macOS: passed (4 tests and 3 doctests; 1 doctest ignored). The GTK regression is platform-gated and did not run on macOS.Earlier application-level verification on an Omarchy/Hyprland VM confirmed the same initialization change restored the main window to 280×404 and the update window to 500×420.
The standalone GTK test has not yet been executed: the VM was unavailable over SSH during PR preparation. Run it in a live tiling Wayland session with:
GDK_BACKEND=wayland cargo test --test gtk_initial_fixed_size -- --ignored --test-threads=1Initially maximized/fullscreen windows, X11, other Wayland compositors, and BSD runtime behavior have not been independently exercised for this PR. The separate BSD resize-hit-testing patch from our application fork is excluded.