Skip to content

Fix drag and drop positioning on mixed-resolution multi-monitor setups - #55

Open
Kr3db wants to merge 3 commits into
pctrade:mainfrom
Kr3db:main
Open

Kr3db wants to merge 3 commits into
pctrade:mainfrom
Kr3db:main

Conversation

@Kr3db

@Kr3db Kr3db commented Aug 23, 2026

Copy link
Copy Markdown

Saving absolute pixel coordinates for widgets causes them to render off-center or completely off-screen on secondary monitors with different resolutions.

This commit refactors targetX, targetY, and the onReleased logic in AbstractBackgroundWidget.qml to calculate and store positions as a resolution-independent percentage (0.0 to 1.0) based on the widget's center. It also includes bounds checking to ensure widgets cannot be dragged out of the visible screen area, seamlessly syncing positions across all monitors.

Kr3db and others added 3 commits August 24, 2026 01:43
…caling and add legacy config support

This refines the drag-and-drop positioning for mixed-resolution setups by introducing more precise math and backward compatibility for existing users.

Key improvements:
1. **Available Margin Calculation:** Instead of scaling by raw screen size, coordinates are now normalized against the available movable space (`scaledScreenWidth - width`). This guarantees 100% precision across monitors and ensures widgets never clip past the screen edges.
2. **Seamless Legacy Migration:** Added a fallback mechanism that safely detects old absolute pixel coordinates in `config.json` (values > 1.0). It automatically converts them into the new relative fractions (0.0 to 1.0) on the fly, ensuring existing users won't experience broken layouts after updating.
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.

1 participant