GNOME: Fix maximize state not being remembered when focus changes and window decorations are hidden

Apparently mutter needs window geometry set after the surface commit not
before, otherwise it doesnt "stick". When decorations are not hidden
there were other commits caused by the decorations, masking the issue.

Fixes #3507
This commit is contained in:
Kovid Goyal 2021-04-23 14:04:12 +05:30
parent 6dc8df5178
commit 93dfe19c35
No known key found for this signature in database
GPG key ID: 06BC317B515ACE7C
2 changed files with 4 additions and 1 deletions

View file

@ -22,6 +22,9 @@ To update |kitty|, :doc:`follow the instructions <binary>`.
- icat kitten: Respect EXIF orientation when displaying JPEG images
(:iss:`3518`)
- GNOME: Fix maximize state not being remembered when focus changes and window
decorations are hidden (:iss:`3507`)
0.20.1 [2021-04-19]
----------------------

2
glfw/wl_window.c vendored
View file

@ -451,11 +451,11 @@ static void xdgToplevelHandleConfigure(void* data,
debug("final window content size: %dx%d\n", window->wl.width, window->wl.height);
_glfwInputWindowFocus(window, window->wl.toplevel_states & TOPLEVEL_STATE_ACTIVATED);
ensure_csd_resources(window);
wl_surface_commit(window->wl.surface);
#define geometry window->wl.decorations.geometry
debug("Setting window geometry: x=%d y=%d %dx%d\n", geometry.x, geometry.y, geometry.width, geometry.height);
xdg_surface_set_window_geometry(window->wl.xdg.surface, geometry.x, geometry.y, geometry.width, geometry.height);
#undef geometry
wl_surface_commit(window->wl.surface);
if (live_resize_done) _glfwInputLiveResize(window, false);
}