QPushButton/fusion style: don't ignore QIcon::On icon
authorDebian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
Sat, 3 Dec 2022 17:38:46 +0000 (17:38 +0000)
committerDmitry Shachnev <mitya57@debian.org>
Sat, 3 Dec 2022 17:38:46 +0000 (17:38 +0000)
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 f4345d97c4eaacc97db543d9e2856ca7d7937ced..962912c8380a7dcf264378020b432e0628fd6248 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();
     {