Add focus-floating/tiling actions

This commit is contained in:
Ivan Molodetskikh
2024-12-28 10:14:02 +03:00
parent ad50dd21fe
commit 5b4750a009
5 changed files with 52 additions and 0 deletions
+22
View File
@@ -2729,6 +2729,20 @@ impl<W: LayoutElement> Layout<W> {
workspace.set_window_floating(window, floating);
}
pub fn focus_floating(&mut self) {
let Some(workspace) = self.active_workspace_mut() else {
return;
};
workspace.focus_floating();
}
pub fn focus_tiling(&mut self) {
let Some(workspace) = self.active_workspace_mut() else {
return;
};
workspace.focus_tiling();
}
pub fn switch_focus_floating_tiling(&mut self) {
let Some(workspace) = self.active_workspace_mut() else {
return;
@@ -4393,6 +4407,8 @@ mod tests {
id: Option<usize>,
floating: bool,
},
FocusFloating,
FocusTiling,
SwitchFocusFloatingTiling,
SetParent {
#[proptest(strategy = "1..=5usize")]
@@ -4909,6 +4925,12 @@ mod tests {
let id = id.filter(|id| layout.has_window(id));
layout.set_window_floating(id.as_ref(), floating);
}
Op::FocusFloating => {
layout.focus_floating();
}
Op::FocusTiling => {
layout.focus_tiling();
}
Op::SwitchFocusFloatingTiling => {
layout.switch_focus_floating_tiling();
}