From 03493cee3d4eafb95eb440a11ee45d443082fdfa Mon Sep 17 00:00:00 2001 From: Julian Orth Date: Thu, 17 Jul 2025 18:23:12 +0200 Subject: [PATCH] tree: when moving fullscreen toplevel, move underlying toplevel too --- src/tree/toplevel.rs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/tree/toplevel.rs b/src/tree/toplevel.rs index 9d8741b2..54444324 100644 --- a/src/tree/toplevel.rs +++ b/src/tree/toplevel.rs @@ -970,7 +970,9 @@ pub fn toplevel_set_workspace(state: &Rc, tl: Rc, ws: & if old_ws.id == ws.id { return; } - if tl.tl_data().is_fullscreen.get() { + let data = tl.tl_data(); + let fullscreen = data.is_fullscreen.get(); + if fullscreen { if let Some(old) = ws.fullscreen.get() { old.tl_set_fullscreen(false, None); } @@ -978,8 +980,9 @@ pub fn toplevel_set_workspace(state: &Rc, tl: Rc, ws: & return; } tl.clone().tl_set_fullscreen(false, None); - tl.tl_set_fullscreen(true, Some(ws.clone())); - return; + if data.is_fullscreen.get() { + return; + } } let cn = match tl.tl_data().parent.get() { Some(cn) => cn, @@ -996,6 +999,9 @@ pub fn toplevel_set_workspace(state: &Rc, tl: Rc, ws: & let (width, height) = tl.tl_data().float_size(ws); state.map_floating(tl.clone(), width, height, ws, None); } else { - state.map_tiled_on(tl, ws); + state.map_tiled_on(tl.clone(), ws); + } + if fullscreen { + tl.tl_set_fullscreen(true, Some(ws.clone())); } }