diff --git a/src/client/tab.rs b/src/client/tab.rs index 8e8bffe0..b4c5c00a 100644 --- a/src/client/tab.rs +++ b/src/client/tab.rs @@ -1,4 +1,5 @@ -//! `Tab`s holds multiple panes. It tracks their coordinates (x/y) and size, as well as how they should be resized +//! `Tab`s holds multiple panes. It tracks their coordinates (x/y) and size, +//! as well as how they should be resized use crate::common::{AppInstruction, SenderWithContext}; use crate::panes::{PaneId, PositionAndSize, TerminalPane}; @@ -296,9 +297,8 @@ impl Tab { * terminal_to_check.columns(); let terminal_can_be_split = terminal_to_check.columns() >= MIN_TERMINAL_WIDTH && terminal_to_check.rows() >= MIN_TERMINAL_HEIGHT - && ((terminal_to_check.columns() >= terminal_to_check.min_width() * 2 + 1) - || (terminal_to_check.rows() - >= terminal_to_check.min_height() * 2 + 1)); + && ((terminal_to_check.columns() > terminal_to_check.min_width() * 2) + || (terminal_to_check.rows() > terminal_to_check.min_height() * 2)); if terminal_can_be_split && terminal_size > current_largest_terminal_size { (terminal_size, Some(*id_of_terminal_to_check)) } else { @@ -321,7 +321,7 @@ impl Tab { y: terminal_to_split.y(), }; if terminal_to_split.rows() * CURSOR_HEIGHT_WIDTH_RATIO > terminal_to_split.columns() - && terminal_to_split.rows() >= terminal_to_split.min_height() * 2 + 1 + && terminal_to_split.rows() > terminal_to_split.min_height() * 2 { // FIXME: This could use a second look if let PaneId::Terminal(term_pid) = pid { @@ -343,7 +343,7 @@ impl Tab { } self.active_terminal = Some(pid); } - } else if terminal_to_split.columns() >= terminal_to_split.min_width() * 2 + 1 { + } else if terminal_to_split.columns() > terminal_to_split.min_width() * 2 { // FIXME: This could use a second look if let PaneId::Terminal(term_pid) = pid { let (left_winsize, right_winsize) = split_vertically_with_gap(&terminal_ws); @@ -1437,7 +1437,7 @@ impl Tab { p.columns() > increase_by && p.columns() - increase_by >= p.min_width() }); } else { - return false; + false } } fn can_increase_pane_and_surroundings_left( @@ -1459,7 +1459,7 @@ impl Tab { p.columns() > increase_by && p.columns() - increase_by >= p.min_width() }); } else { - return false; + false } } fn can_increase_pane_and_surroundings_down( @@ -1481,7 +1481,7 @@ impl Tab { p.rows() > increase_by && p.rows() - increase_by >= p.min_height() }); } else { - return false; + false } } fn can_increase_pane_and_surroundings_up(&self, pane_id: &PaneId, increase_by: usize) -> bool { @@ -1499,7 +1499,7 @@ impl Tab { p.rows() > increase_by && p.rows() - increase_by >= p.min_height() }); } else { - return false; + false } } fn can_reduce_pane_and_surroundings_right(&self, pane_id: &PaneId, reduce_by: usize) -> bool { @@ -1518,7 +1518,7 @@ impl Tab { .unwrap_or(true) // no max width, increase to your heart's content }); } else { - return false; + false } } fn can_reduce_pane_and_surroundings_left(&self, pane_id: &PaneId, reduce_by: usize) -> bool { @@ -1537,7 +1537,7 @@ impl Tab { .unwrap_or(true) // no max width, increase to your heart's content }); } else { - return false; + false } } fn can_reduce_pane_and_surroundings_down(&self, pane_id: &PaneId, reduce_by: usize) -> bool { @@ -1556,7 +1556,7 @@ impl Tab { .unwrap_or(true) // no max height, increase to your heart's content }); } else { - return false; + false } } fn can_reduce_pane_and_surroundings_up(&self, pane_id: &PaneId, reduce_by: usize) -> bool { @@ -1575,7 +1575,7 @@ impl Tab { .unwrap_or(true) // no max height, increase to your heart's content }); } else { - return false; + false } } pub fn resize_right(&mut self) { diff --git a/src/common/input/handler.rs b/src/common/input/handler.rs index 14e7876a..4d1e4f44 100644 --- a/src/common/input/handler.rs +++ b/src/common/input/handler.rs @@ -283,34 +283,34 @@ pub fn get_help(mode: InputMode) -> Help { let mut keybinds: Vec<(String, String)> = vec![]; match mode { InputMode::Normal | InputMode::Command => { - keybinds.push((format!("p"), format!("PANE"))); - keybinds.push((format!("t"), format!("TAB"))); - keybinds.push((format!("r"), format!("RESIZE"))); - keybinds.push((format!("s"), format!("SCROLL"))); + keybinds.push(("p".to_string(), "PANE".to_string())); + keybinds.push(("t".to_string(), "TAB".to_string())); + keybinds.push(("r".to_string(), "RESIZE".to_string())); + keybinds.push(("s".to_string(), "SCROLL".to_string())); } InputMode::Resize => { - keybinds.push((format!("←↓↑→"), format!("Resize"))); + keybinds.push(("←↓↑→".to_string(), "Resize".to_string())); } InputMode::Pane => { - keybinds.push((format!("←↓↑→"), format!("Move focus"))); - keybinds.push((format!("p"), format!("Next"))); - keybinds.push((format!("n"), format!("New"))); - keybinds.push((format!("d"), format!("Split down"))); - keybinds.push((format!("r"), format!("Split right"))); - keybinds.push((format!("x"), format!("Close"))); - keybinds.push((format!("f"), format!("Fullscreen"))); + keybinds.push(("←↓↑→".to_string(), "Move focus".to_string())); + keybinds.push(("p".to_string(), "Next".to_string())); + keybinds.push(("n".to_string(), "New".to_string())); + keybinds.push(("d".to_string(), "Split down".to_string())); + keybinds.push(("r".to_string(), "Split right".to_string())); + keybinds.push(("x".to_string(), "Close".to_string())); + keybinds.push(("f".to_string(), "Fullscreen".to_string())); } InputMode::Tab => { - keybinds.push((format!("←↓↑→"), format!("Move focus"))); - keybinds.push((format!("n"), format!("New"))); - keybinds.push((format!("x"), format!("Close"))); + keybinds.push(("←↓↑→".to_string(), "Move focus".to_string())); + keybinds.push(("n".to_string(), "New".to_string())); + keybinds.push(("x".to_string(), "Close".to_string())); } InputMode::Scroll => { - keybinds.push((format!("↓↑"), format!("Scroll"))); + keybinds.push(("↓↑".to_string(), "Scroll".to_string())); } } - keybinds.push((format!("ESC"), format!("BACK"))); - keybinds.push((format!("q"), format!("QUIT"))); + keybinds.push(("ESC".to_string(), "BACK".to_string())); + keybinds.push(("q".to_string(), "QUIT".to_string())); Help { mode, keybinds } } diff --git a/src/common/input/keybinds.rs b/src/common/input/keybinds.rs index 7197d2de..151d3495 100644 --- a/src/common/input/keybinds.rs +++ b/src/common/input/keybinds.rs @@ -172,7 +172,7 @@ pub fn key_to_actions( // FIXME in command mode, unbound keystrokes should probably do nothing instead of // writing to the terminal. Will be easier to implement after a big refactor of the // input system (@categorille) - .unwrap_or(vec![Action::Write(input)]) + .unwrap_or_else(|| vec![Action::Write(input)]) } else { unreachable!("Unrecognized mode: {:?}", mode); } diff --git a/src/common/os_input_output.rs b/src/common/os_input_output.rs index 132ff46d..26a7d497 100644 --- a/src/common/os_input_output.rs +++ b/src/common/os_input_output.rs @@ -83,6 +83,7 @@ fn handle_command_exit(mut child: Child) { for signal in signals.pending() { // FIXME: We need to handle more signals here! + #[allow(clippy::single_match)] match signal { signal_hook::SIGINT => { child.kill().unwrap();