aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/quick/items/qquickpalettecolorprovider.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/quick/items/qquickpalettecolorprovider.cpp b/src/quick/items/qquickpalettecolorprovider.cpp
index 2eef1dce63..ecbddce3ba 100644
--- a/src/quick/items/qquickpalettecolorprovider.cpp
+++ b/src/quick/items/qquickpalettecolorprovider.cpp
@@ -133,10 +133,12 @@ bool QQuickPaletteColorProvider::reset()
bool QQuickPaletteColorProvider::inheritPalette(const QPalette &p)
{
+ auto inheritedMask = m_requestedPalette.isAllocated() ? m_requestedPalette->resolveMask() | p.resolveMask() : p.resolveMask();
QPalette parentPalette = m_requestedPalette.isAllocated() ? m_requestedPalette->resolve(p) : p;
- parentPalette.setResolveMask(m_requestedPalette.isAllocated() ? m_requestedPalette->resolveMask() | p.resolveMask() : p.resolveMask());
+ parentPalette.setResolveMask(inheritedMask);
auto tmpResolvedPalette = parentPalette.resolve(paletteProvider()->defaultPalette());
+ tmpResolvedPalette.setResolveMask(tmpResolvedPalette.resolveMask() | inheritedMask);
bool changed = notEq(tmpResolvedPalette, m_resolvedPalette);
if (changed) {