mirror of
https://github.com/rust-windowing/winit.git
synced 2026-06-27 15:13:13 -04:00
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:
@@ -351,13 +351,17 @@ impl WindowState {
|
||||
let old_state = self
|
||||
.last_configure
|
||||
.as_ref()
|
||||
.map(|configure| configure.state)
|
||||
.unwrap_or(XdgWindowState::empty());
|
||||
.map(|configure| configure.state);
|
||||
|
||||
let state_change_requires_resize = !new_state
|
||||
.symmetric_difference(old_state)
|
||||
.difference(XdgWindowState::ACTIVATED | XdgWindowState::SUSPENDED)
|
||||
.is_empty();
|
||||
let state_change_requires_resize = old_state
|
||||
.map(|old_state| {
|
||||
!old_state
|
||||
.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.
|
||||
self.last_configure = Some(configure);
|
||||
|
||||
Reference in New Issue
Block a user