Fix FancyZones editor overlay on mixed-DPI multi-monitor setups #44440
+77
−23
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary of the Pull Request
Use DPI-unaware context when positioning overlay windows to match the coordinate space from the C++ backend.
The FancyZones editor overlay windows were incorrectly positioned on secondary monitors when using different DPI scaling (e.g., 125%/150%/125%). Zones appeared shifted or clipped because they extended past monitor edges.
PR Checklist
Detailed Description of the Pull Request / Additional comments
Root Cause
The C++ backend uses a DPI-unaware thread to get virtual screen coordinates, but the WPF editor (PerMonitorV2 DPI-aware) interpreted these coordinates with DPI scaling applied, causing misalignment on non-primary monitors.
Fix
DPIAware::Convertthat was only applied to dimensions)SetWindowPositionDpiUnaware()usingSetThreadDpiAwarenessContextto temporarily switch DPI awarenessValidation Steps Performed
Manually tested on 3-monitor setup with 125%/150%/125% DPI scaling - overlays now correctly cover each monitor's work area.
🤖 This fix was developed with Claude Code after 6 hours of debugging DPI coordinate systems together.