summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohan Klokkhammer Helsing <johan.helsing@qt.io>2018-05-09 14:02:08 +0200
committerJohan Helsing <johan.helsing@qt.io>2018-05-09 13:49:52 +0000
commitbb02115ff1c23289264b077d7d24b723fd9d339a (patch)
treec998dd2d115f00b0fd3f4ea75324b973a4fbb419
parentc158e0496297b99ab55323c6c0c806cb729ad2a5 (diff)
Don't call QWaylandCompositorExtension::initialize multiple times
QWaylandCompositorExtension::initialize already had a guard to return early if called multiple times, sub-class implementations, however, may not include such checks. Change-Id: I088a240bdf6ebd8b77de7aab9d2c6953e55569e6 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
-rw-r--r--src/compositor/global/qwaylandcompositorextension.cpp3
-rw-r--r--src/compositor/global/qwaylandquickextension.h2
2 files changed, 3 insertions, 2 deletions
diff --git a/src/compositor/global/qwaylandcompositorextension.cpp b/src/compositor/global/qwaylandcompositorextension.cpp
index ee117bbae..e50df48bd 100644
--- a/src/compositor/global/qwaylandcompositorextension.cpp
+++ b/src/compositor/global/qwaylandcompositorextension.cpp
@@ -124,7 +124,8 @@ bool QWaylandCompositorExtension::event(QEvent *event)
{
switch(event->type()) {
case QEvent::Polish:
- initialize();
+ if (!isInitialized())
+ initialize();
break;
default:
break;
diff --git a/src/compositor/global/qwaylandquickextension.h b/src/compositor/global/qwaylandquickextension.h
index b869dcec4..c721bcb97 100644
--- a/src/compositor/global/qwaylandquickextension.h
+++ b/src/compositor/global/qwaylandquickextension.h
@@ -60,7 +60,7 @@ QT_BEGIN_NAMESPACE
return QQmlListProperty<QObject>(this, m_objects); \
} \
void classBegin() override {} \
- void componentComplete() override { initialize(); } \
+ void componentComplete() override { if (!isInitialized()) initialize(); } \
private: \
QList<QObject *> m_objects; \
};