Bug 471388

Summary: Visual glitches on button icons in apps using qqc2-desktop-style with a fractional scale factor
Product: [Plasma] Breeze Reporter: Justin Zobel <justin.zobel>
Component: QStyleAssignee: Plasma Bugs List <plasma-bugs-null>
Status: RESOLVED FIXED    
Severity: minor CC: ahiemstra, kde, nate, noahadvs, notmart, uhhadd
Priority: NOR Keywords: qt6
Version First Reported In: master   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:
Attachments: Screenshot

Description Justin Zobel 2023-06-23 14:49:59 UTC
Created attachment 159860 [details]
Screenshot

See attached screenshot.
Comment 1 Nate Graham 2023-06-24 05:03:44 UTC
Let's see if it's a problem in our QQC2 desktop style when using a fractional scale factor; can you run `QT_QUICK_CONTROLS_STYLE=Basic keysmith` in a terminal window and see if the problem goes away? You could also try the "Material" style by substituting that for "Basic" in the command.
Comment 2 Justin Zobel 2023-06-29 03:36:14 UTC
Basic definitely makes the icons look better, as does Material
Comment 3 Nate Graham 2023-06-29 21:36:12 UTC
Thanks. That would suggest that it's a rendering bug in kquickstyleitem, which is used by qqc2-desktop-style to draw the visual styling of UI widgets that come from the active QStyle in QML UI elements.

Is this a regression in Plasma 6? Was it working properly for you with Plasma 5?
Comment 4 Justin Zobel 2023-06-30 00:43:52 UTC
Yeah, it never happened in Plasma 5.
Comment 5 Nate Graham 2023-07-27 15:56:09 UTC
Can confirm.
Comment 6 Bug Janitor Service 2023-08-15 15:50:27 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/breeze/-/merge_requests/338
Comment 7 Kai Uwe Broulik 2023-08-16 16:44:48 UTC
Git commit 32b9f3c25efeafcc11747af5cf6bca7300d412e8 by Kai Uwe Broulik.
Committed on 16/08/2023 at 13:30.
Pushed by broulik into branch 'master'.

kstyle: Create pixmaps with explicit devicePixelRatio

Otherwise Qt takes the qApp devicePixelRatio which can be integer
or wrong in case of multi-monitor.

M  +6    -1    kstyle/breezehelper.cpp
M  +6    -1    kstyle/breezehelper.h
M  +20   -11   kstyle/breezestyle.cpp

https://invent.kde.org/plasma/breeze/-/commit/32b9f3c25efeafcc11747af5cf6bca7300d412e8