diff options
Diffstat (limited to 'src/corelib/kernel/qproperty.cpp')
-rw-r--r-- | src/corelib/kernel/qproperty.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/corelib/kernel/qproperty.cpp b/src/corelib/kernel/qproperty.cpp index 103c3d8482..147103aed9 100644 --- a/src/corelib/kernel/qproperty.cpp +++ b/src/corelib/kernel/qproperty.cpp @@ -110,12 +110,15 @@ void QPropertyBindingPrivate::markDirtyAndNotifyObservers() eagerlyUpdating = true; QScopeGuard guard([&](){eagerlyUpdating = false;}); + bool knownIfChanged = false; if (requiresEagerEvaluation()) { // these are compat properties that we will need to evaluate eagerly - evaluateIfDirtyAndReturnTrueIfValueChanged(propertyDataPtr); + if (!evaluateIfDirtyAndReturnTrueIfValueChanged(propertyDataPtr)) + return; + knownIfChanged = true; } if (firstObserver) - firstObserver.notify(this, propertyDataPtr); + firstObserver.notify(this, propertyDataPtr, knownIfChanged); if (hasStaticObserver) staticObserverCallback(propertyDataPtr); } |