summaryrefslogtreecommitdiffstats
path: root/src/statemachineqml/signaltransition.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/statemachineqml/signaltransition.cpp')
-rw-r--r--src/statemachineqml/signaltransition.cpp7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/statemachineqml/signaltransition.cpp b/src/statemachineqml/signaltransition.cpp
index 593e038..d311725 100644
--- a/src/statemachineqml/signaltransition.cpp
+++ b/src/statemachineqml/signaltransition.cpp
@@ -89,10 +89,9 @@ const QJSValue& SignalTransition::signal()
void SignalTransition::setSignal(const QJSValue &signal)
{
- if (m_signal.value().strictlyEquals(signal)) {
- m_signal.removeBindingUnlessInWrapper();
+ m_signal.removeBindingUnlessInWrapper();
+ if (m_signal.valueBypassingBindings().strictlyEquals(signal))
return;
- }
QV4::ExecutionEngine *jsEngine = QQmlEngine::contextForObject(this)->engine()->handle();
QV4::Scope scope(jsEngine);
@@ -100,7 +99,7 @@ void SignalTransition::setSignal(const QJSValue &signal)
QObject *sender;
QMetaMethod signalMethod;
- m_signal = signal;
+ m_signal.setValueBypassingBindings(signal);
QV4::ScopedValue value(scope, QJSValuePrivate::asReturnedValue(&signal));
// Did we get the "slot" that can be used to invoke the signal?