Summary: | Plasma Panel Switches Monitor After Screen Wakes | ||
---|---|---|---|
Product: | [Plasma] plasmashell | Reporter: | email <email> |
Component: | Containment | Assignee: | Plasma Bugs List <plasma-bugs> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | nate, notmart |
Priority: | NOR | Keywords: | multiscreen |
Version: | 5.27.2 | ||
Target Milestone: | 1.0 | ||
Platform: | Debian unstable | ||
OS: | Linux | ||
Latest Commit: | https://invent.kde.org/plasma/plasma-workspace/-/commit/d03a98fc69c94f83f9410651d15a21ff41a72904 | Version Fixed In: | 6.0.3 |
Sentry Crash Report: |
Description
email@thelinuxcast.org
2023-05-29 23:29:11 UTC
Thanks for the bug report. A few questions: 1. Does it happen only on X11, only on Wayland, or on both? 2. Does it also happen if you lock the screen with Meta+L and then unlock, or only on screen sleep/wake? Oh and one more question as well: 3. If you create a new clean user account and replicate by hand the same panel setup there, does the bug still happen? Or not? Forgot two more: 4. What GPU are these screens plugged into? 5. When this happens, can you make the issue go away by restarting plasmashell with `systemctl restart --user plasma-plasmashell.service` (assuming you're using the systemd boot; if not, try `plasmashell --replace`)? A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/4108 Git commit 27dd68970f33627ba52903c2fc5b1442c7217e0f by David Redondo. Committed on 26/03/2024 at 13:47. Pushed by davidre into branch 'master'. Avoid positioning the panel when it has no size yet Calling setPosition with a position of the left-most pixel of a screen and size of 0x0 will set the screen to be the one to the left of it. Making screenToFollow() and QWindow::screen() out of sync temporarily. While arguably a Qt issue and this being fixed up later when the panel resizes and other properties are updated, we need to workaround this to our usage of layer-shell. Layer surfaces can't change screen once created. It can happen that the surface is created during the time that the panel is on the wrong screen, resulting in the panel appearing on the wrong screen while thinking it is on another one. To fix this the initial positionPanel() call is removed, the panel will now be positioned after it has resized from the event handler. Related: bug 483102, bug 483348 FIXED-IN:6.0.3 M +1 -1 shell/panelview.cpp https://invent.kde.org/plasma/plasma-workspace/-/commit/27dd68970f33627ba52903c2fc5b1442c7217e0f Git commit d03a98fc69c94f83f9410651d15a21ff41a72904 by David Redondo. Committed on 26/03/2024 at 14:06. Pushed by davidre into branch 'Plasma/6.0'. Avoid positioning the panel when it has no size yet Calling setPosition with a position of the left-most pixel of a screen and size of 0x0 will set the screen to be the one to the left of it. Making screenToFollow() and QWindow::screen() out of sync temporarily. While arguably a Qt issue and this being fixed up later when the panel resizes and other properties are updated, we need to workaround this to our usage of layer-shell. Layer surfaces can't change screen once created. It can happen that the surface is created during the time that the panel is on the wrong screen, resulting in the panel appearing on the wrong screen while thinking it is on another one. To fix this the initial positionPanel() call is removed, the panel will now be positioned after it has resized from the event handler. Related: bug 483102, bug 483348 FIXED-IN:6.0.3 (cherry picked from commit 27dd68970f33627ba52903c2fc5b1442c7217e0f) M +1 -1 shell/panelview.cpp https://invent.kde.org/plasma/plasma-workspace/-/commit/d03a98fc69c94f83f9410651d15a21ff41a72904 |