shell: Unmaximize when moving a single window to another tiling layer
This commit is contained in:
parent
5cef49d2ce
commit
d46ed304b8
1 changed files with 10 additions and 1 deletions
|
|
@ -2591,10 +2591,19 @@ impl Shell {
|
||||||
|
|
||||||
let any_seat = seat.unwrap_or(self.seats.last_active()).clone();
|
let any_seat = seat.unwrap_or(self.seats.last_active()).clone();
|
||||||
let mut to_workspace = self.workspaces.space_for_handle_mut(to).unwrap(); // checked above
|
let mut to_workspace = self.workspaces.space_for_handle_mut(to).unwrap(); // checked above
|
||||||
let focus_stack = seat.map(|seat| to_workspace.focus_stack.get(&seat));
|
|
||||||
if window_state.layer == ManagedLayer::Floating || !to_workspace.tiling_enabled {
|
if window_state.layer == ManagedLayer::Floating || !to_workspace.tiling_enabled {
|
||||||
to_workspace.floating_layer.map(mapped.clone(), None);
|
to_workspace.floating_layer.map(mapped.clone(), None);
|
||||||
} else {
|
} else {
|
||||||
|
for mapped in to_workspace
|
||||||
|
.mapped()
|
||||||
|
.filter(|m| m.maximized_state.lock().unwrap().is_some())
|
||||||
|
.cloned()
|
||||||
|
.collect::<Vec<_>>()
|
||||||
|
.into_iter()
|
||||||
|
{
|
||||||
|
to_workspace.unmaximize_request(&mapped);
|
||||||
|
}
|
||||||
|
let focus_stack = seat.map(|seat| to_workspace.focus_stack.get(&seat));
|
||||||
to_workspace.tiling_layer.map(
|
to_workspace.tiling_layer.map(
|
||||||
mapped.clone(),
|
mapped.clone(),
|
||||||
focus_stack.as_ref().map(|x| x.iter()),
|
focus_stack.as_ref().map(|x| x.iter()),
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue