floating: restore size and loc on unmaximize

This commit is contained in:
Victoria Brekenfeld 2022-07-08 15:20:29 +02:00
parent b2572e05ad
commit bf0b959e4d
3 changed files with 67 additions and 13 deletions

View file

@ -226,11 +226,16 @@ impl XdgShellHandler for State {
}
fn unmaximize_request(&mut self, _dh: &DisplayHandle, surface: ToplevelSurface) {
surface.with_pending_state(|state| {
state.states.unset(xdg_toplevel::State::Maximized);
state.size = None;
});
surface.send_configure();
let surface = surface.wl_surface();
if let Some(workspace) = self.common.shell.space_for_surface_mut(surface) {
let window = workspace
.space
.window_for_surface(surface, WindowSurfaceType::TOPLEVEL)
.unwrap()
.clone();
workspace.unmaximize_request(&window)
}
}
fn fullscreen_request(