Window receives old size in fullscreen configuration event
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
mutter (Ubuntu) |
New
|
Undecided
|
Unassigned |
Bug Description
Ubuntu 24.04 with Wayland
A bug was reported to SDL regarding a client app sporadically not getting the correct dimensions when entering fullscreen. The original report is here: https:/
The client application is initially creating a non-resizable window, then entering fullscreen. In this case, SDL first removes any min/max limits, commits, then makes the fullscreen request. The issues is that sometimes the corresponding configuration event contains the correct fullscreen dimensions, and other times it sends the old, constrained dimensions.
The full output of WAYLAND_DEBUG=1 is attached, but the relevant bit in a failure scenario is here:
[1653593.718] -> xdg_toplevel@
[1653593.720] -> xdg_toplevel@
[1653593.723] -> xdg_surface@
[1653593.726] -> wl_surface@
[1653593.729] -> xdg_toplevel@
[1653593.732] -> wl_display@
[1653593.741] -> wl_display@
[1653595.811] wl_display@
[1653595.836] wl_display@
[1653595.840] wl_display@
[1653595.843] xdg_toplevel@
[1653595.846] xdg_toplevel@
[1653595.850] xdg_surface@
[1653595.864] -> wp_viewport@
[1653595.868] -> wl_compositor@
[1653595.871] -> wl_region@55.add(0, 0, 1280, 744)
[1653595.875] -> wl_surface@
[1653595.878] -> wl_region@
[1653595.883] -> wl_surface@
[1653595.886] -> wl_surface@
[1653595.889] -> wl_surface@
[1653595.892] -> wl_surface@
[1653595.895] -> xdg_surface@
[1653595.898] -> xdg_surface@
The constraints are zeroed and the changes are committed, but the old size is being sent in the fullscreen configuration event. SDL is respecting the reported fullscreen bounds, as it should. If the window is created as resizable and no constraints are ever set, this does not occur.
I'm reporting this here as Ubuntu 24.04 is the only report we've had on this matter, and I've never been able to replicate it on upstream GNOME/Mutter.
I'm not aware of any Ubuntu-specifics that might cause this. I would suggest:
1. Testing the 46.0 upstream tag to see if it's just that Ubuntu hasn't released the fix yet; and
2. If 46.0 upstream did not have the bug (meaning it can't be bisected), then report an upstream bug anyway since they have more expertise and eyeballs available.