Skip to content

Conversation

@Gamsel
Copy link

@Gamsel Gamsel commented Jul 23, 2025

Problem: If more than one monitor is eligible to move to, the behavior is undefined.

Solution: In WindowManager::monitor_idx_in_direction, added logic to handle multiple candidate monitors. When more than one monitor is found, the method now checks the top-left corner of the currently focused window to determine the appropriate monitor. If this check fails, it falls back to the first detected monitor.

P.S. This is my first time using Rust and contributing to a repository — please let me know if I’ve done anything incorrectly or if there’s anything I can improve! :)

image image image

@Gamsel Gamsel changed the title Baseline checkin Multimonitor Move to different monitor Jul 23, 2025
@Gamsel Gamsel changed the title Multimonitor Move to different monitor Multimonitor move to different monitor Jul 23, 2025
Err(_) => return None,
};

let mut found: Vec<(usize, &Monitor)> = Vec::new();
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's declare something like let mut target_idx = None here, and then below replace all the returns with target_idx = Some(whatever_index), and then finally replace the None returned at the end with target_idx

@LGUG2Z
Copy link
Owner

LGUG2Z commented Jul 24, 2025

This looks good, I just left a small refactor request to reduce the number of early returns added to this function

Once you amend your commit with those changes, make sure you also match the commit message style (ie. feat(wm): improve multi-monitor directional move handling) and add something like the description you put in the first post of the issue to the commit body - after that I think this will be good to merge 🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants