tiling: Fix swap-focus always selecting whole stacks

This commit is contained in:
Victoria Brekenfeld 2023-09-12 12:48:13 +02:00
parent 9ad69fe119
commit a5b10f5d4a

View file

@ -1948,7 +1948,10 @@ impl TilingLayout {
}))
}
Data::Mapped { mapped, .. } => {
if mapped.is_stack() && desc.stack_window.is_none() {
if mapped.is_stack()
&& desc.stack_window.is_none()
&& replacement_id == &desc.node
{
mapped.stack_ref().unwrap().focus_stack();
}
FocusResult::Some(KeyboardFocusTarget::Element(mapped.clone()))
@ -2025,7 +2028,10 @@ impl TilingLayout {
if mapped.is_stack()
&& swap_desc
.as_ref()
.map(|desc| desc.stack_window.is_none())
.map(|desc| {
desc.stack_window.is_none()
&& &desc.node == node_id.unwrap()
})
.unwrap_or(false)
{
mapped.stack_ref().unwrap().focus_stack();