Conversation
…on mixed-resolution multi-monitor setups
…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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
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 theonReleasedlogic inAbstractBackgroundWidget.qmlto 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.