diff options
Diffstat (limited to 'src/quick/items/qquickwindowmodule.cpp')
-rw-r--r-- | src/quick/items/qquickwindowmodule.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/quick/items/qquickwindowmodule.cpp b/src/quick/items/qquickwindowmodule.cpp index 3bd62d21db..d06fff8c3e 100644 --- a/src/quick/items/qquickwindowmodule.cpp +++ b/src/quick/items/qquickwindowmodule.cpp @@ -41,6 +41,7 @@ #include "qquickwindowmodule_p.h" #include "qquickscreen_p.h" +#include "qquickview_p.h" #include <QtQuick/QQuickWindow> #include <QtCore/QCoreApplication> #include <QtQml/QQmlEngine> @@ -91,12 +92,19 @@ Q_SIGNALS: protected: void classBegin() { + QQmlEngine* e = qmlEngine(this); //Give QQuickView behavior when created from QML with QQmlApplicationEngine if (QCoreApplication::instance()->property("__qml_using_qqmlapplicationengine") == QVariant(true)) { - QQmlEngine* e = qmlEngine(this); if (e && !e->incubationController()) e->setIncubationController(incubationController()); } + Q_ASSERT(e); + { + QV4::ExecutionEngine *v4 = QQmlEnginePrivate::getV4Engine(e); + QV4::Scope scope(v4); + QV4::ScopedObject v(scope, new (v4->memoryManager) QQuickRootItemMarker(e, this)); + rootItemMarker = v; + } } void componentComplete() { @@ -158,6 +166,7 @@ private: bool m_complete; bool m_visible; Visibility m_visibility; + QV4::PersistentValue rootItemMarker; }; void QQuickWindowModule::defineModule() |