diff --git a/komorebi/src/process_command.rs b/komorebi/src/process_command.rs index 7eab95c5..7060dc96 100644 --- a/komorebi/src/process_command.rs +++ b/komorebi/src/process_command.rs @@ -703,10 +703,12 @@ impl WindowManager { if let Layout::Custom(ref mut custom) = rule.1 { match sizing { Sizing::Increase => { - custom.set_primary_width_percentage(percentage + 5.0); + custom + .set_primary_width_percentage(percentage + 5.0); } Sizing::Decrease => { - custom.set_primary_width_percentage(percentage - 5.0); + custom + .set_primary_width_percentage(percentage - 5.0); } } } diff --git a/komorebi/src/window_manager.rs b/komorebi/src/window_manager.rs index c7fb1f5e..679d5111 100644 --- a/komorebi/src/window_manager.rs +++ b/komorebi/src/window_manager.rs @@ -309,12 +309,20 @@ impl WindowManager { match direction { OperationDirection::Left => { if monitor.size().left + monitor.size().right == current_monitor_size.left { + if current_monitor_size.top > monitor.size().bottom { + continue; + } + return Option::from(idx); } } OperationDirection::Right => { if current_monitor_size.right + current_monitor_size.left == monitor.size().left { + if current_monitor_size.top > monitor.size().bottom { + continue; + } + return Option::from(idx); } } @@ -1040,7 +1048,7 @@ impl WindowManager { .get_mut(first_idx) .ok_or_else(|| anyhow!("There is no monitor"))? .remove_workspaces(); - + let second_workspaces = self .monitors_mut() .get_mut(second_idx)