diff --git a/komorebi/src/windows_api.rs b/komorebi/src/windows_api.rs index 360a16e5..044ad1c6 100644 --- a/komorebi/src/windows_api.rs +++ b/komorebi/src/windows_api.rs @@ -348,7 +348,7 @@ impl WindowsApi { .len() .max(monitor_usr_idx_map.keys().max().map_or(0, |v| *v)); - let available_usr_idxs = (0..max_usr_idx) + let mut available_usr_idxs = (0..max_usr_idx) .filter(|i| !monitor_usr_idx_map.contains_key(i)) .collect::>(); @@ -359,6 +359,7 @@ impl WindowsApi { for i in not_added_monitor_idxs { if let Some(next_usr_idx) = available_usr_idxs.first() { monitor_usr_idx_map.insert(*next_usr_idx, i); + available_usr_idxs.remove(0); } else if let Some(idx) = monitor_usr_idx_map.keys().max() { monitor_usr_idx_map.insert(*idx, i); }