diff --git a/src/main.rs b/src/main.rs index 994f140..658a4be 100644 --- a/src/main.rs +++ b/src/main.rs @@ -515,39 +515,22 @@ fn move_container_to_next_or_prev_output(stream: &UnixStream, go_to_prev: bool) send_command(stream, &cmd); } -fn move_container_to_next_group(stream: &UnixStream) { - move_container_to_next_or_prev_group(stream, false); +fn focus_container_to_next_group(stream: &UnixStream) { + focus_container_to_next_or_prev_group(stream, false); } -fn move_container_to_prev_group(stream: &UnixStream) { - move_container_to_next_or_prev_group(stream, true); +fn focus_container_to_prev_group(stream: &UnixStream) { + focus_container_to_next_or_prev_group(stream, true); } -fn move_container_to_next_or_prev_group(stream: &UnixStream, go_to_prev: bool) { +fn focus_container_to_next_or_prev_group(stream: &UnixStream, go_to_prev: bool) { let current_workspace_index: usize = get_current_workspace(stream).num; let focused_group_index = current_workspace_index / 10; - let outputs = get_outputs(stream); - if focused_group_index < outputs.len() { - let target_output = if go_to_prev { - &outputs[(focused_group_index - 1) - 1] - } else { - &outputs[(focused_group_index + 1) - 1] - }; - - let mut cmd: String = "focus output ".to_string(); - cmd.push_str(&target_output.name); - send_command(stream, &cmd); + if go_to_prev { + focus_to_group(stream, focused_group_index - 1); } else { - let target_workspace = if go_to_prev { - current_workspace_index - 10 - } else { - current_workspace_index + 10 - }; - - let mut cmd: String = "workspace number ".to_string(); - cmd.push_str(&target_workspace.to_string()); - send_command(stream, &cmd); + focus_to_group(stream, focused_group_index + 1); }; } @@ -617,10 +600,10 @@ fn main() { move_container_to_prev_output(&stream); } Command::NextGroup => { - move_container_to_next_group(&stream); + focus_container_to_next_group(&stream); } Command::PrevGroup => { - move_container_to_prev_group(&stream); + focus_container_to_prev_group(&stream); } Command::RearrangeWorkspaces => { rearrange_workspaces(&stream);