From bd35dfb4b62b1159c25c64758c2afd87cfdca263 Mon Sep 17 00:00:00 2001 From: Poly Date: Mon, 19 Jul 2021 19:12:38 +0200 Subject: [PATCH] Automatically unmaximize toplevel when it is moved --- anvil/src/shell.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/anvil/src/shell.rs b/anvil/src/shell.rs index 0b4da6c..cd5562b 100644 --- a/anvil/src/shell.rs +++ b/anvil/src/shell.rs @@ -407,6 +407,20 @@ pub fn init_shell(display: Rc>, log: ::sl return; } + // If surface is maximized then unmaximize it + if let Some(current_state) = surface.current_state() { + if current_state.states.contains(xdg_toplevel::State::Maximized) { + let fs_changed = surface.with_pending_state(|state| { + state.states.unset(xdg_toplevel::State::Maximized); + state.size = None; + }); + + if fs_changed.is_ok() { + surface.send_configure(); + } + } + } + let toplevel = SurfaceKind::Xdg(surface); let initial_window_location = xdg_window_map.borrow().location(&toplevel).unwrap();