Skip to content

Commit

Permalink
feat(wm): add granular directional monitor idx detection
Browse files Browse the repository at this point in the history
  • Loading branch information
LGUG2Z committed Oct 16, 2024
1 parent 1ef7a09 commit e5b1c95
Showing 1 changed file with 22 additions and 6 deletions.
28 changes: 22 additions & 6 deletions komorebi/src/window_manager.rs
Original file line number Diff line number Diff line change
Expand Up @@ -468,25 +468,41 @@ impl WindowManager {
for (idx, monitor) in self.monitors.elements().iter().enumerate() {
match direction {
OperationDirection::Left => {
if monitor.size().left + monitor.size().right == current_monitor_size.left {
if monitor.size().right <= current_monitor_size.left
&& monitor.size().top < current_monitor_size.bottom
&& monitor.size().bottom > current_monitor_size.top
|| monitor.size().left + monitor.size().right == current_monitor_size.left
{
return Option::from(idx);
}
}
OperationDirection::Right => {
if current_monitor_size.right + current_monitor_size.left == monitor.size().left
if monitor.size().left >= current_monitor_size.right
&& monitor.size().top < current_monitor_size.bottom
&& monitor.size().bottom > current_monitor_size.top
|| current_monitor_size.right + current_monitor_size.left
== monitor.size().left
{
return Option::from(idx);
}
}
OperationDirection::Up => {
if monitor.size().top + monitor.size().bottom == current_monitor_size.top {
return Option::from(idx);
if monitor.size().bottom <= current_monitor_size.top
&& monitor.size().left < current_monitor_size.right
&& monitor.size().right > current_monitor_size.left
|| monitor.size().top + monitor.size().bottom == current_monitor_size.top
{
return Some(idx);
}
}
OperationDirection::Down => {
if current_monitor_size.top + current_monitor_size.bottom == monitor.size().top
if monitor.size().top >= current_monitor_size.bottom
&& monitor.size().left < current_monitor_size.right
&& monitor.size().right > current_monitor_size.left
|| current_monitor_size.top + current_monitor_size.bottom
== monitor.size().top
{
return Option::from(idx);
return Some(idx);
}
}
}
Expand Down

0 comments on commit e5b1c95

Please sign in to comment.