[Breeze] [Bug 418166] Additional frame on context menu with fractional scaling

Noah Davis bugzilla_noreply at kde.org
Mon Oct 11 21:40:13 BST 2021


https://bugs.kde.org/show_bug.cgi?id=418166

Noah Davis <noahadvs at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |FIXED
             Status|CONFIRMED                   |RESOLVED
      Latest Commit|                            |https://invent.kde.org/plas
                   |                            |ma/breeze/commit/ee06e26236
                   |                            |c52b16e546a7208603c845f4159
                   |                            |a0e

--- Comment #5 from Noah Davis <noahadvs at gmail.com> ---
Git commit ee06e26236c52b16e546a7208603c845f4159a0e by Noah Davis, on behalf of
Tatsuyuki Ishi.
Committed on 11/10/2021 at 20:39.
Pushed by ndavis into branch 'master'.

shadow: handle DPR outside the renderer

QPainter's auto-scaling is prone to off-by-one rounding errors and draws on
fractional coordinates. With this change, we paint on a 1x DPR QPainter and
scale the shadow offset and strength manually based on DPR.

This resolves an issue with resulting in seams on the right and bottom
edges of a menu due to shadow boundaries being off-by-one.

v2: remove unrelated formatting changes
v3:
- move the DPR helper to ShadowHelper
- retrieve the DPR from the widget instead of the global QGuiApplication
- added BUG reference

M  +0    -2    kdecoration/breezedecoration.cpp
M  +0    -4    kstyle/breezehelper.cpp
M  +0    -3    kstyle/breezehelper.h
M  +1    -1    kstyle/breezemdiwindowshadow.cpp
M  +16   -10   kstyle/breezeshadowhelper.cpp
M  +15   -1    kstyle/breezeshadowhelper.h
M  +1    -7    libbreezecommon/breezeboxshadowrenderer.cpp
M  +0    -7    libbreezecommon/breezeboxshadowrenderer.h

https://invent.kde.org/plasma/breeze/commit/ee06e26236c52b16e546a7208603c845f4159a0e

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the kfm-devel mailing list