Summary: | Maximized windows on one screen take one pixel on other (fractional scaling) | ||
---|---|---|---|
Product: | [Plasma] KScreen | Reporter: | Mykola Krachkovsky <w01dnick> |
Component: | common | Assignee: | kscreen-bugs-null <kscreen-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | fanzhuyifan, kdedev, miranda, nate |
Priority: | NOR | Keywords: | wayland |
Version: | git | ||
Target Milestone: | --- | ||
Platform: | Other | ||
OS: | Linux | ||
See Also: |
https://bugs.kde.org/show_bug.cgi?id=459373 https://bugs.kde.org/show_bug.cgi?id=477886 https://bugs.kde.org/show_bug.cgi?id=477791 |
||
Latest Commit: | https://invent.kde.org/plasma/kscreen/-/commit/cff5739c872393bfbfe9bca43a5763f4d9ec3e6e | Version Fixed In: | 6.0 |
Attachments: |
Affected 1.25 + 1.5 screen layout
screenshot with noticeable step between panel and extent of window |
Description
Mykola Krachkovsky
2023-01-26 07:11:45 UTC
Created attachment 155656 [details]
screenshot with noticeable step between panel and extent of window
Can reproduce on latest neon unstable (wayland) A possibly relevant merge request was started @ https://invent.kde.org/plasma/libkscreen/-/merge_requests/172 A possibly relevant merge request was started @ https://invent.kde.org/plasma/kscreen/-/merge_requests/264 Git commit 6f797a908360de5c9654cd6cbd1dcc170b35207c by Yifan Zhu. Committed on 10/12/2023 at 04:33. Pushed by zamundaaa into branch 'master'. Round up output geometry Under fractional scaling, output screens can have non-integral sizes. Previous code uses QSizeF::toSize(), which rounds to the nearest integer. This sometimes results in different screens sharing one pixel at the edge, which causes BUG 464842 and BUG 477791. Implement Output::explicitLogicalSizeInt() and Config::logicalSizeForOutputInt to explicitly round up non-integral sizes, and use them in calculating output geometry. Related: bug 477791 M +1 -1 autotests/testscreenconfig.cpp M +7 -1 src/config.cpp M +7 -0 src/config.h M +7 -1 src/output.cpp M +11 -0 src/output.h https://invent.kde.org/plasma/libkscreen/-/commit/6f797a908360de5c9654cd6cbd1dcc170b35207c Git commit cff5739c872393bfbfe9bca43a5763f4d9ec3e6e by Xaver Hugl, on behalf of Yifan Zhu. Committed on 11/12/2023 at 15:23. Pushed by zamundaaa into branch 'master'. Round up output geometry Under fractional scaling, output screens can have non-integral sizes. Previous code uses QSizeF::toSize(), which rounds to the nearest integer. This sometimes results in different screens sharing one pixel at the edge, which causes BUG 464842 and BUG 477791. Use the new Output::explicitLogicalSizeInt() and Config::logicalSizeForOutputInt functions to explicitly round up non-integral sizes. Related: bug 477791 M +6 -6 kcm/output_model.cpp https://invent.kde.org/plasma/kscreen/-/commit/cff5739c872393bfbfe9bca43a5763f4d9ec3e6e |