Bug 437079

Summary: PlatformThemeData inheritance is not atomic
Product: [Frameworks and Libraries] frameworks-kirigami Reporter: David Edmundson <kde>
Component: generalAssignee: Marco Martin <notmart>
Status: REPORTED ---    
Severity: normal CC: nate
Priority: NOR    
Version: Master   
Target Milestone: Not decided   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description David Edmundson 2021-05-14 10:53:27 UTC
QMetaObject::invokeMethod(
            theme,
            [this, theme]() {
                pendingChildUpdate = false;
                theme->updateChildren(theme->parent());
            },
            Qt::QueuedConnection);

This means that you can change the palette and potentially render a frame with half the palette out of sync.

"Event compression" is just a thing that causes difficult bugs and wastes lots of time.

If we're worried about the cost of calling setXyzColor a tonne of times indepdendently we should make the colours a separate object that can be set atomically.