qml: proper initialization if scene is already initialized
authorRoman Nowicki <rnowicki@sims.pl>
Thu, 19 Nov 2015 10:55:19 +0000 (11:55 +0100)
committerMatthew Waters <matthew@centricular.com>
Thu, 19 Nov 2015 22:41:56 +0000 (09:41 +1100)
The scene graph can be initialized when the we receive window handle change
notification and so we will not receive a scenegraph initialization
notification.  Initialize ourself in this case.

https://bugzilla.gnome.org/show_bug.cgi?id=758337

ext/qt/qtitem.cc

index 69d0324..ec2e859 100644 (file)
@@ -412,7 +412,11 @@ void
 QtGLVideoItem::handleWindowChanged(QQuickWindow *win)
 {
   if (win) {
-    connect(win, SIGNAL(sceneGraphInitialized()), this, SLOT(onSceneGraphInitialized()), Qt::DirectConnection);
+    if (win->isSceneGraphInitialized())
+      onSceneGraphInitialized();
+    else
+         connect(win, SIGNAL(sceneGraphInitialized()), this, SLOT(onSceneGraphInitialized()), Qt::DirectConnection);
+
     connect(win, SIGNAL(sceneGraphInvalidated()), this, SLOT(onSceneGraphInvalidated()), Qt::DirectConnection);
   } else {
     this->priv->qt_context = NULL;