diff --git a/src/shell/mod.rs b/src/shell/mod.rs index b15698c2..0e7ff650 100644 --- a/src/shell/mod.rs +++ b/src/shell/mod.rs @@ -2228,7 +2228,7 @@ impl Shell { } if !should_be_fullscreen && should_be_maximized { - self.maximize_request(&mapped, &seat); + self.maximize_request(&mapped, &seat, false); } let new_target = if (workspace_output == seat.active_output() @@ -3248,7 +3248,7 @@ impl Shell { if window.is_fullscreen(true) { return; } - self.maximize_request(window, seat); + self.maximize_request(window, seat, true); } } @@ -3319,7 +3319,7 @@ impl Shell { } } - pub fn maximize_request(&mut self, mapped: &CosmicMapped, seat: &Seat) { + pub fn maximize_request(&mut self, mapped: &CosmicMapped, seat: &Seat, animate: bool) { self.unminimize_request(mapped, seat); let (original_layer, floating_layer, original_geometry) = if let Some(set) = self .workspaces @@ -3348,7 +3348,7 @@ impl Shell { original_layer, }); std::mem::drop(state); - floating_layer.map_maximized(mapped.clone(), original_geometry, true); + floating_layer.map_maximized(mapped.clone(), original_geometry, animate); } } @@ -3577,7 +3577,7 @@ impl Shell { if was_maximized { if let Some(KeyboardFocusTarget::Element(mapped)) = res.as_ref() { - self.maximize_request(mapped, seat); + self.maximize_request(mapped, seat, false); } } diff --git a/src/wayland/handlers/toplevel_management.rs b/src/wayland/handlers/toplevel_management.rs index db047b34..432a76bd 100644 --- a/src/wayland/handlers/toplevel_management.rs +++ b/src/wayland/handlers/toplevel_management.rs @@ -210,7 +210,7 @@ impl ToplevelManagementHandler for State { let mut shell = self.common.shell.write().unwrap(); if let Some(mapped) = shell.element_for_surface(window).cloned() { let seat = shell.seats.last_active().clone(); - shell.maximize_request(&mapped, &seat); + shell.maximize_request(&mapped, &seat, true); } } diff --git a/src/wayland/handlers/xdg_shell/mod.rs b/src/wayland/handlers/xdg_shell/mod.rs index 6d0c6050..3e5dbba2 100644 --- a/src/wayland/handlers/xdg_shell/mod.rs +++ b/src/wayland/handlers/xdg_shell/mod.rs @@ -226,7 +226,7 @@ impl XdgShellHandler for State { let mut shell = self.common.shell.write().unwrap(); if let Some(mapped) = shell.element_for_surface(surface.wl_surface()).cloned() { let seat = shell.seats.last_active().clone(); - shell.maximize_request(&mapped, &seat) + shell.maximize_request(&mapped, &seat, true) } else if let Some(pending) = shell .pending_windows .iter_mut() diff --git a/src/xwayland.rs b/src/xwayland.rs index 2af93b31..b74668d1 100644 --- a/src/xwayland.rs +++ b/src/xwayland.rs @@ -612,7 +612,7 @@ impl XwmHandler for State { let mut shell = self.common.shell.write().unwrap(); if let Some(mapped) = shell.element_for_surface(&window).cloned() { let seat = shell.seats.last_active().clone(); - shell.maximize_request(&mapped, &seat); + shell.maximize_request(&mapped, &seat, true); } else if let Some(pending) = shell .pending_windows .iter_mut()