diff --git a/src/kdeclarative/private/qmlobject_p.h b/src/kdeclarative/private/qmlobject_p.h --- a/src/kdeclarative/private/qmlobject_p.h +++ b/src/kdeclarative/private/qmlobject_p.h @@ -59,8 +59,15 @@ public Q_SLOTS: void incubate() { + if (m_incubating) { + return; + } + if (incubatingObjectCount()) { + m_incubating = true; incubateFor(m_incubation_time * 2); + m_incubating = false; + if (incubatingObjectCount()) { QCoreApplication::postEvent(this, new QEvent(QEvent::User)); } @@ -82,6 +89,7 @@ } private: int m_incubation_time; + bool m_incubating = false; }; }