On Wayland, ensure initial resize delivery

While we correctly configure the sizes, we also need to actually resize
the frame on initial configure and send geometry.

Fixes #3277.
This commit is contained in:
Kirill Chibisov 2023-12-21 22:29:36 +04:00 committed by GitHub
parent a676d0018b
commit 8b5c84f404
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -357,13 +357,17 @@ impl WindowState {
let old_state = self let old_state = self
.last_configure .last_configure
.as_ref() .as_ref()
.map(|configure| configure.state) .map(|configure| configure.state);
.unwrap_or(XdgWindowState::empty());
let state_change_requires_resize = !new_state let state_change_requires_resize = old_state
.symmetric_difference(old_state) .map(|old_state| {
.difference(XdgWindowState::ACTIVATED | XdgWindowState::SUSPENDED) !old_state
.is_empty(); .symmetric_difference(new_state)
.difference(XdgWindowState::ACTIVATED | XdgWindowState::SUSPENDED)
.is_empty()
})
// NOTE: `None` is present for the initial configure, thus we must always resize.
.unwrap_or(true);
// NOTE: Set the configure before doing a resize, since we query it during it. // NOTE: Set the configure before doing a resize, since we query it during it.
self.last_configure = Some(configure); self.last_configure = Some(configure);