diff options
| -rw-r--r-- | src/gui/kernel/qpalette.cpp | 3 | ||||
| -rw-r--r-- | tests/auto/gui/kernel/qpalette/tst_qpalette.cpp | 8 |
2 files changed, 9 insertions, 2 deletions
diff --git a/src/gui/kernel/qpalette.cpp b/src/gui/kernel/qpalette.cpp index b313d545a51..1ce611ce21b 100644 --- a/src/gui/kernel/qpalette.cpp +++ b/src/gui/kernel/qpalette.cpp @@ -787,9 +787,8 @@ void QPalette::setBrush(ColorGroup cg, ColorRole cr, const QBrush &b) if (d->br[cg][cr] != b) { detach(); d->br[cg][cr] = b; + d->resolveMask |= ResolveMask(1) << bitPosition(cg, cr); } - - d->resolveMask |= ResolveMask(1) << bitPosition(cg, cr); } /*! diff --git a/tests/auto/gui/kernel/qpalette/tst_qpalette.cpp b/tests/auto/gui/kernel/qpalette/tst_qpalette.cpp index 6524f73143d..9ef313f36db 100644 --- a/tests/auto/gui/kernel/qpalette/tst_qpalette.cpp +++ b/tests/auto/gui/kernel/qpalette/tst_qpalette.cpp @@ -227,6 +227,14 @@ void tst_QPalette::isBrushSet() QVERIFY(p.isBrushSet(QPalette::Active, QPalette::LinkVisited)); QVERIFY(p.isBrushSet(QPalette::Inactive, QPalette::LinkVisited)); QVERIFY(p.isBrushSet(QPalette::Disabled, QPalette::LinkVisited)); + + // Don't set flag when brush doesn't change (and also don't detach - QTBUG-98762) + QPalette p2; + QPalette p3; + QVERIFY(!p2.isBrushSet(QPalette::Active, QPalette::Dark)); + p2.setBrush(QPalette::Active, QPalette::Dark, p2.brush(QPalette::Active, QPalette::Dark)); + QVERIFY(!p3.isBrushSet(QPalette::Active, QPalette::Dark)); + QVERIFY(!p2.isBrushSet(QPalette::Active, QPalette::Dark)); } void tst_QPalette::setAllPossibleBrushes() |
