Summary: | Adjacent monitors' positioning can be off by one pixel, causing unintentional overlaps that trigger other issues | ||
---|---|---|---|
Product: | [Applications] systemsettings | Reporter: | Riccardo Robecchi <sephiroth_pk> |
Component: | kcm_kscreen | Assignee: | kscreen-bugs-null <kscreen-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | culinaryelation, daniel-other+kdebug, dar13.dev, declan, felim, fn1701, hoffmann_lorenz, kirill.bogdanenko, linus.kardell, mikeoosting, nate, phrasky, plasma-bugs, postix, sitter, skierpage, thiago, w01dnick, xaver.hugl |
Priority: | VHI | Keywords: | regression |
Version: | 5.25.0 | ||
Target Milestone: | --- | ||
Platform: | Neon | ||
OS: | Linux | ||
Latest Commit: | https://invent.kde.org/plasma/kscreen/commit/fee471e09bcbfcbd6f6cab05b605a0916162fa43 | Version Fixed In: | 5.27.5 |
Sentry Crash Report: | |||
Attachments: | White edge of central screen appearing on left monitor |
Description
Riccardo Robecchi
2022-06-16 10:51:11 UTC
*** Bug 438155 has been marked as a duplicate of this bug. *** *** Bug 423939 has been marked as a duplicate of this bug. *** *** Bug 425192 has been marked as a duplicate of this bug. *** A possibly relevant merge request was started @ https://invent.kde.org/plasma/kscreen/-/merge_requests/153 Git commit 6faf4d6b89e826db00198e270675e966ec09d0d0 by Alexander Volkov. Committed on 10/11/2022 at 08:34. Pushed by volkov into branch 'master'. Fix right to right snapping target.right() is calculated as target.x() + target.width() - 1, so 1 needs to be added to the x coordinate of a snapped rect. This is done in snapToBottom(), but was forgotten in snapToRight(). Amend 6309d33f092e60a96ce38b32cb295a3e54347cb9. M +1 -1 kcm/output_model.cpp https://invent.kde.org/plasma/kscreen/commit/6faf4d6b89e826db00198e270675e966ec09d0d0 Git commit fab815b0564ea08202b5bd3429f580c6c5a742d3 by Nate Graham, on behalf of Alexander Volkov. Committed on 10/11/2022 at 14:49. Pushed by ngraham into branch 'Plasma/5.26'. Fix right to right snapping target.right() is calculated as target.x() + target.width() - 1, so 1 needs to be added to the x coordinate of a snapped rect. This is done in snapToBottom(), but was forgotten in snapToRight(). Amend 6309d33f092e60a96ce38b32cb295a3e54347cb9. (cherry picked from commit 6faf4d6b89e826db00198e270675e966ec09d0d0) M +1 -1 kcm/output_model.cpp https://invent.kde.org/plasma/kscreen/commit/fab815b0564ea08202b5bd3429f580c6c5a742d3 *** Bug 418459 has been marked as a duplicate of this bug. *** *** Bug 436460 has been marked as a duplicate of this bug. *** *** Bug 424265 has been marked as a duplicate of this bug. *** *** Bug 454578 has been marked as a duplicate of this bug. *** *** Bug 420465 has been marked as a duplicate of this bug. *** *** Bug 423939 has been marked as a duplicate of this bug. *** I've just seen this again in 5.27.2 As kscreen set them: Screen 0: minimum 320 x 200, current 7679 x 2400, maximum 16384 x 16384 eDP-1 connected primary 3840x2400+0+0 (normal left inverted right x axis y axis) 288mm x 180mm 3840x2400 59.99*+ 48.00 DP-3-2 connected 3840x2160+3839+0 (normal left inverted right x axis y axis) 597mm x 336mm 3840x2160 29.98* After xrandr --output DP-3-2 --right-of eDP-1: Screen 0: minimum 320 x 200, current 7680 x 2400, maximum 16384 x 16384 eDP-1 connected primary 3840x2400+0+0 (normal left inverted right x axis y axis) 288mm x 180mm 3840x2400 59.99*+ 48.00 DP-3-2 connected 3840x2160+3840+0 (normal left inverted right x axis y axis) 597mm x 336mm 3840x2160 29.98* *** Bug 467049 has been marked as a duplicate of this bug. *** Are you quite certain the config this happens with is from 5.27 (not older and incorrect from before 5.27)? I've been playing with the kcm for a while and haven't managed to get incorrect snapping out of it. (In reply to Harald Sitter from comment #16) > Are you quite certain the config this happens with is from 5.27 (not older > and incorrect from before 5.27)? I've been playing with the kcm for a while > and haven't managed to get incorrect snapping out of it. Yes, I am quite sure. My guess is this is related to HighDPI: at 2x, the off-by-1 gets lost in the rounding. Good thought. I'll try some more. A possibly relevant merge request was started @ https://invent.kde.org/plasma/kscreen/-/merge_requests/204 *** Bug 464132 has been marked as a duplicate of this bug. *** *** Bug 420263 has been marked as a duplicate of this bug. *** *** Bug 467367 has been marked as a duplicate of this bug. *** *** Bug 467776 has been marked as a duplicate of this bug. *** Git commit fb0c1657b531225b0cf18b719eee4dee952d6bf1 by Harald Sitter. Committed on 24/04/2023 at 21:59. Pushed by sitter into branch 'master'. yet more QRect right() fixes QRect::right and topRight are off by one for historical reasons. This caused incorrect default positioning when a (new) screen gets enabled and automatically positioned. To solve this entire source of problems let's stop using the faulty API and instead calculate the offsets manually. More code but no trap doors. The original code was written as though things were not off by one anyway. M +17 -12 kcm/output_model.cpp https://invent.kde.org/plasma/kscreen/commit/fb0c1657b531225b0cf18b719eee4dee952d6bf1 Git commit fee471e09bcbfcbd6f6cab05b605a0916162fa43 by Harald Sitter. Committed on 24/04/2023 at 21:59. Pushed by sitter into branch 'Plasma/5.27'. yet more QRect right() fixes QRect::right and topRight are off by one for historical reasons. This caused incorrect default positioning when a (new) screen gets enabled and automatically positioned. To solve this entire source of problems let's stop using the faulty API and instead calculate the offsets manually. More code but no trap doors. The original code was written as though things were not off by one anyway. (cherry picked from commit fb0c1657b531225b0cf18b719eee4dee952d6bf1) M +17 -12 kcm/output_model.cpp https://invent.kde.org/plasma/kscreen/commit/fee471e09bcbfcbd6f6cab05b605a0916162fa43 I'm still seeing this on KDE Neon, I'm on a dark theme and have the light 1 pixel highlight...thing... and I can see the Windows on my central monitor, their light pixel edge on the left screen and same on others. Operating System: KDE neon 5.27 KDE Plasma Version: 5.27.5 KDE Frameworks Version: 5.105.0 Qt Version: 5.15.9 Kernel Version: 5.19.0-41-generic (64-bit) Graphics Platform: X11 Processors: 12 × AMD Ryzen 5 2600X Six-Core Processor Memory: 62.7 GiB of RAM Graphics Processor: AMD Radeon RX 580 Series I'll attache a zoomed in shot of the white line on edge of the right side of the left monitor. Created attachment 158972 [details]
White edge of central screen appearing on left monitor
That doesn't look like a monitor overlap, it looks like the window outline of a maximized window bleeding onto adjacent screens. Which is Bug 457565. (In reply to Nate Graham from comment #28) > That doesn't look like a monitor overlap, it looks like the window outline > of a maximized window bleeding onto adjacent screens. Which is Bug 457565. It's not a fullscreen window but it is snapped to the edge of the centre one... not sure if that's different or not. Same issue, yeah. *** Bug 471131 has been marked as a duplicate of this bug. *** |