QPushButton/fusion style: don't ignore QIcon::On icon
authorDebian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
Sat, 8 Feb 2025 16:24:33 +0000 (19:24 +0300)
committerDmitry Shachnev <mitya57@debian.org>
Sat, 8 Feb 2025 16:24:33 +0000 (19:24 +0300)
Origin: upstream, https://code.qt.io/cgit/qt/qtbase.git/commit/?id=e9ccdf4d84157173
Last-Update: 2021-08-10

The fusion style did ignore the QIcon::On icon because it reset
State_On to avoid the visual shift of a pressed button.
But it's not needed to reset this flag - the shift does not happen
because the fusion style does return 0 as offset for
PM_ButtonShiftHorizontal/PM_ButtonShiftVertical so no shifting will
happen.

Gbp-Pq: Name fusion_checkable_qpushbutton.diff

src/widgets/styles/qfusionstyle.cpp

index a225d4b5631a98d6f70ce8e32fa0118a5e002048..35e2769ac46ded4c52166cc94279ea6fb6dbfebe 100644 (file)
@@ -1772,14 +1772,6 @@ void QFusionStyle::drawControl(ControlElement element, const QStyleOption *optio
             proxy()->drawControl(CE_PushButtonLabel, &subopt, painter, widget);
         }
         break;
-    case CE_PushButtonLabel:
-        if (const QStyleOptionButton *button = qstyleoption_cast<const QStyleOptionButton *>(option)) {
-            QStyleOptionButton b(*button);
-            // no PM_ButtonShiftHorizontal and PM_ButtonShiftVertical for fusion style
-            b.state &= ~(State_On | State_Sunken);
-            QCommonStyle::drawControl(element, &b, painter, widget);
-        }
-        break;
     case CE_MenuBarEmptyArea:
         painter->save();
     {