diff options
-rw-r--r-- | src/quick/items/qquickpalettecolorprovider.cpp | 4 |
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) { |