mirror of
https://github.com/rust-windowing/winit.git
synced 2026-08-30 13:20:06 -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
|
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);
|
||||||
|
|||||||
Reference in New Issue
Block a user