diff --git a/komorebi-core/src/arrangement.rs b/komorebi-core/src/arrangement.rs index facc6165..0383f88f 100644 --- a/komorebi-core/src/arrangement.rs +++ b/komorebi-core/src/arrangement.rs @@ -131,21 +131,23 @@ impl Arrangement for DefaultLayout { layouts } Self::UltrawideVerticalStack => ultrawide(area, len, layout_flip, resize_dimensions), + #[allow( + clippy::cast_precision_loss, + clippy::cast_possible_truncation, + clippy::cast_possible_wrap + )] Self::Grid => { // Shamelessly lifted from LeftWM // https://github.com/leftwm/leftwm/blob/18675067b8450e520ef75db2ebbb0d973aa1199e/leftwm-core/src/layouts/grid_horizontal.rs let mut layouts: Vec = vec![]; layouts.resize(len, Rect::default()); - #[allow(clippy::cast_possible_truncation)] let len = len as i32; - #[allow(clippy::cast_possible_truncation)] let num_cols = (len as f32).sqrt().ceil() as i32; let mut iter = layouts.iter_mut().enumerate().peekable(); for col in 0..num_cols { - #[allow(clippy::cast_possible_truncation)] let iter_peek = iter.peek().map(|x| x.0).unwrap_or_default() as i32; let remaining_windows = len - iter_peek; let remaining_columns = num_cols - col; diff --git a/komorebi-core/src/default_layout.rs b/komorebi-core/src/default_layout.rs index 883f2977..bf7cb9db 100644 --- a/komorebi-core/src/default_layout.rs +++ b/komorebi-core/src/default_layout.rs @@ -150,7 +150,7 @@ impl DefaultLayout { Self::VerticalStack => Self::Rows, Self::Rows => Self::Columns, Self::Columns => Self::Grid, - Self::Grid => Self::BSP + Self::Grid => Self::BSP, } } } diff --git a/komorebi-core/src/direction.rs b/komorebi-core/src/direction.rs index e70b0d08..950e5de2 100644 --- a/komorebi-core/src/direction.rs +++ b/komorebi-core/src/direction.rs @@ -19,10 +19,30 @@ pub trait Direction { idx: usize, count: usize, ) -> bool; - fn up_index(&self, op_direction: Option, idx: usize, count: Option) -> usize; - fn down_index(&self, op_direction: Option, idx: usize, count: Option) -> usize; - fn left_index(&self, op_direction: Option, idx: usize, count: Option) -> usize; - fn right_index(&self, op_direction: Option, idx: usize, count: Option) -> usize; + fn up_index( + &self, + op_direction: Option, + idx: usize, + count: Option, + ) -> usize; + fn down_index( + &self, + op_direction: Option, + idx: usize, + count: Option, + ) -> usize; + fn left_index( + &self, + op_direction: Option, + idx: usize, + count: Option, + ) -> usize; + fn right_index( + &self, + op_direction: Option, + idx: usize, + count: Option, + ) -> usize; } impl Direction for DefaultLayout { @@ -112,7 +132,12 @@ impl Direction for DefaultLayout { } } - fn up_index(&self, op_direction: Option, idx: usize, count: Option) -> usize { + fn up_index( + &self, + op_direction: Option, + idx: usize, + count: Option, + ) -> usize { match self { Self::BSP => { if idx % 2 == 0 { @@ -128,7 +153,12 @@ impl Direction for DefaultLayout { } } - fn down_index(&self, op_direction: Option, idx: usize, count: Option) -> usize { + fn down_index( + &self, + op_direction: Option, + idx: usize, + count: Option, + ) -> usize { match self { Self::BSP | Self::Rows | Self::VerticalStack | Self::UltrawideVerticalStack => idx + 1, Self::Columns => unreachable!(), @@ -137,7 +167,12 @@ impl Direction for DefaultLayout { } } - fn left_index(&self, op_direction: Option, idx: usize, count: Option) -> usize { + fn left_index( + &self, + op_direction: Option, + idx: usize, + count: Option, + ) -> usize { match self { Self::BSP => { if idx % 2 == 0 { @@ -158,7 +193,12 @@ impl Direction for DefaultLayout { } } - fn right_index(&self, op_direction: Option, idx: usize, count: Option) -> usize { + fn right_index( + &self, + op_direction: Option, + idx: usize, + count: Option, + ) -> usize { match self { Self::BSP | Self::Columns | Self::HorizontalStack => idx + 1, Self::Rows => unreachable!(), @@ -185,6 +225,7 @@ enum GridItemState { Invalid, } +#[allow(clippy::struct_excessive_bools)] struct GridTouchingEdges { left: bool, right: bool, @@ -192,8 +233,12 @@ struct GridTouchingEdges { down: bool, } +#[allow( + clippy::cast_possible_truncation, + clippy::cast_precision_loss, + clippy::cast_sign_loss +)] fn get_grid_item(idx: usize, count: usize) -> GridItem { - #[allow(clippy::cast_possible_truncation)] let num_cols = (count as f32).sqrt().ceil() as usize; let mut iter = 0; @@ -248,9 +293,18 @@ fn is_grid_edge(op_direction: OperationDirection, idx: usize, count: usize) -> b } } -fn grid_neighbor(op_direction: Option, idx: usize, count: Option) -> usize { - let op_direction = if let Some(dir) = op_direction { dir } else { return 0; }; - let count = if let Some(count) = count { count } else { return 0; }; +fn grid_neighbor( + op_direction: Option, + idx: usize, + count: Option, +) -> usize { + let Some(op_direction) = op_direction else { + return 0; + }; + + let Some(count) = count else { + return 0; + }; let item = get_grid_item(idx, count); @@ -363,15 +417,30 @@ impl Direction for CustomLayout { } } - fn up_index(&self, _op_direction: Option, idx: usize, _count: Option) -> usize { + fn up_index( + &self, + _op_direction: Option, + idx: usize, + _count: Option, + ) -> usize { idx - 1 } - fn down_index(&self, _op_direction: Option, idx: usize, _count: Option) -> usize { + fn down_index( + &self, + _op_direction: Option, + idx: usize, + _count: Option, + ) -> usize { idx + 1 } - fn left_index(&self, _op_direction: Option, idx: usize, _count: Option) -> usize { + fn left_index( + &self, + _op_direction: Option, + idx: usize, + _count: Option, + ) -> usize { let column_idx = self.column_for_container_idx(idx); if column_idx - 1 == 0 { 0 @@ -380,7 +449,12 @@ impl Direction for CustomLayout { } } - fn right_index(&self, _op_direction: Option, idx: usize, _count: Option) -> usize { + fn right_index( + &self, + _op_direction: Option, + idx: usize, + _count: Option, + ) -> usize { let column_idx = self.column_for_container_idx(idx); self.first_container_idx(column_idx + 1) } diff --git a/komorebi/src/window_manager.rs b/komorebi/src/window_manager.rs index c1b76e12..05589fa2 100644 --- a/komorebi/src/window_manager.rs +++ b/komorebi/src/window_manager.rs @@ -1488,7 +1488,7 @@ impl WindowManager { if matches!(workspace.layout(), Layout::Default(DefaultLayout::Grid)) { tracing::debug!("ignoring promote command for grid layout"); - return Ok(()) + return Ok(()); } tracing::info!("promoting container"); @@ -1505,7 +1505,7 @@ impl WindowManager { if matches!(workspace.layout(), Layout::Default(DefaultLayout::Grid)) { tracing::info!("ignoring promote focus command for grid layout"); - return Ok(()) + return Ok(()); } tracing::info!("promoting focus");