Summary: | When changing display resolutions, desktop Widgets should try to keep the same position as much as possible | ||
---|---|---|---|
Product: | [Plasma] plasmashell | Reporter: | tomashnyk |
Component: | Desktop Containment | Assignee: | Plasma Bugs List <plasma-bugs> |
Status: | CLOSED FIXED | ||
Severity: | wishlist | CC: | auxsvr, cristobal.veas, ihated2, nate, notmart, sonichedgehog_hyperblast00 |
Priority: | NOR | ||
Version: | master | ||
Target Milestone: | 1.0 | ||
Platform: | Other | ||
OS: | Linux | ||
See Also: | https://bugs.kde.org/show_bug.cgi?id=453314 | ||
Latest Commit: | https://invent.kde.org/plasma/plasma-workspace/commit/c7fe9fc0d271a145c9025994673599fb51872446 | Version Fixed In: |
Description
tomashnyk
2022-04-28 13:27:12 UTC
The implementation would be quite a can of worms, but it would be nice indeed. It would also need to be separately implemented for desktop icons and widgets, so let's use this for widgets, and can you please open a new bug report for icons? Done, here: https://bugs.kde.org/show_bug.cgi?id=453314 This is still an issue if you use a non native monitor resolution (unlike https://bugs.kde.org/show_bug.cgi?id=360478). I believe it is caused by the login screen (SDDM) running in native and then applies the screen resolution of the user profile after the login, which scrambles all my widgets around. A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2535 Git commit 39dd7bc3b75df58eb2d569df4f89cbe65f1113b6 by Marco Martin. Committed on 25/01/2023 at 16:07. Pushed by mart into branch 'master'. fix problems in plasmoid layout restore The layout manager has a functionality that when the layout is resized, it tries to move all plasmoids to keep roughtly the same proportional distance they had before the resize happened, to make screen resolution change the least "suprising" possible. We actually need this in only one case: The screen resoltion changed and there is not a saved plasmoid layout for this resolution. What was actually happening was that this heuristic was executed *only* when the layout was resized due to panels being added/resized (and not when it should have been). When a panel gets added/resized we want the plasmoids layoput to change *as little as possible* again, to not make surprises. As a side effect , it casued a pretty serious bug: plasmoids near to the vertical center of the screen migrated upwards of few pixels at every plasma restart, because ever time it starts without a panel which appears only later, causing that heuristic to execute and break havoc. Now the heuristic is executed only when the screen resolution changes, which will cause a "config key change" event. Execute this also when the containment migrates to a new screen, and as soon this heuristic got executed, save the layout on the new key. Related: bug 442919, bug 437538, bug 431432 M +7 -2 components/containmentlayoutmanager/abstractlayoutmanager.h M +14 -4 components/containmentlayoutmanager/appletslayout.cpp M +9 -2 components/containmentlayoutmanager/gridlayoutmanager.cpp M +1 -1 components/containmentlayoutmanager/gridlayoutmanager.h https://invent.kde.org/plasma/plasma-workspace/commit/39dd7bc3b75df58eb2d569df4f89cbe65f1113b6 Git commit c7fe9fc0d271a145c9025994673599fb51872446 by Marco Martin. Committed on 25/01/2023 at 16:23. Pushed by mart into branch 'Plasma/5.27'. fix problems in plasmoid layout restore The layout manager has a functionality that when the layout is resized, it tries to move all plasmoids to keep roughtly the same proportional distance they had before the resize happened, to make screen resolution change the least "suprising" possible. We actually need this in only one case: The screen resoltion changed and there is not a saved plasmoid layout for this resolution. What was actually happening was that this heuristic was executed *only* when the layout was resized due to panels being added/resized (and not when it should have been). When a panel gets added/resized we want the plasmoids layoput to change *as little as possible* again, to not make surprises. As a side effect , it casued a pretty serious bug: plasmoids near to the vertical center of the screen migrated upwards of few pixels at every plasma restart, because ever time it starts without a panel which appears only later, causing that heuristic to execute and break havoc. Now the heuristic is executed only when the screen resolution changes, which will cause a "config key change" event. Execute this also when the containment migrates to a new screen, and as soon this heuristic got executed, save the layout on the new key. Related: bug 442919, bug 437538, bug 431432 M +7 -2 components/containmentlayoutmanager/abstractlayoutmanager.h M +14 -4 components/containmentlayoutmanager/appletslayout.cpp M +9 -2 components/containmentlayoutmanager/gridlayoutmanager.cpp M +1 -1 components/containmentlayoutmanager/gridlayoutmanager.h https://invent.kde.org/plasma/plasma-workspace/commit/c7fe9fc0d271a145c9025994673599fb51872446 I am not sure this should have been closed as fixed by this merge request. The commit message starts with: 'The layout manager has a functionality that when the layout is resized, it tries to move all plasmoids to keep roughtly the same proportional distance they had before the resize happened, to make screen resolution change the least "suprising" possible.' I think that is incorrect. I do not think such functionality exists. This bug is about requesting such functionality - and I do not think this commit added it. So I am reopening this. If I am mistaken, sorry for the noise. Please don't re-open bug reports based on conjecture. If you're experiencing an issue, please submit a new bug report. Thanks! Ok, though if this functionality had been there all along, this should never have been accepted as a bug:-). |