1
0
Fork 0
forked from wry/wry

tree: when moving fullscreen toplevel, move underlying toplevel too

This commit is contained in:
Julian Orth 2025-07-17 18:23:12 +02:00
parent 5e8f6bc8a8
commit 03493cee3d

View file

@ -970,7 +970,9 @@ pub fn toplevel_set_workspace(state: &Rc<State>, tl: Rc<dyn ToplevelNode>, ws: &
if old_ws.id == ws.id { if old_ws.id == ws.id {
return; 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() { if let Some(old) = ws.fullscreen.get() {
old.tl_set_fullscreen(false, None); old.tl_set_fullscreen(false, None);
} }
@ -978,8 +980,9 @@ pub fn toplevel_set_workspace(state: &Rc<State>, tl: Rc<dyn ToplevelNode>, ws: &
return; return;
} }
tl.clone().tl_set_fullscreen(false, None); tl.clone().tl_set_fullscreen(false, None);
tl.tl_set_fullscreen(true, Some(ws.clone())); if data.is_fullscreen.get() {
return; return;
}
} }
let cn = match tl.tl_data().parent.get() { let cn = match tl.tl_data().parent.get() {
Some(cn) => cn, Some(cn) => cn,
@ -996,6 +999,9 @@ pub fn toplevel_set_workspace(state: &Rc<State>, tl: Rc<dyn ToplevelNode>, ws: &
let (width, height) = tl.tl_data().float_size(ws); let (width, height) = tl.tl_data().float_size(ws);
state.map_floating(tl.clone(), width, height, ws, None); state.map_floating(tl.clone(), width, height, ws, None);
} else { } else {
state.map_tiled_on(tl, ws); state.map_tiled_on(tl.clone(), ws);
}
if fullscreen {
tl.tl_set_fullscreen(true, Some(ws.clone()));
} }
} }