@@ -28,6 +28,7 @@
28DebuggingController::DebuggingController(QObject *parent):
28DebuggingController::DebuggingController(QObject *parent):
29 UnityDBusObject(QStringLiteral("/com/canonical/Unity8/Debugging"), QStringLiteral("com.canonical.Unity8"), true, parent)
29 UnityDBusObject(QStringLiteral("/com/canonical/Unity8/Debugging"), QStringLiteral("com.canonical.Unity8"), true, parent)
31+ connect(&m_mapper, SIGNAL(mapped(QObject*)), this, SLOT(applyRenderMode(QObject*)), Qt::DirectConnection);
33void DebuggingController::SetSceneGraphVisualizer(const QString &visualizer)
34void DebuggingController::SetSceneGraphVisualizer(const QString &visualizer)
@@ -43,7 +44,9 @@ void DebuggingController::SetSceneGraphVisualizer(const QString &visualizer)
43 // We do this by simply recreating the renderer.
44 // We do this by simply recreating the renderer.
44 QMutexLocker lock(&m_renderModeMutex);
45 QMutexLocker lock(&m_renderModeMutex);
45 m_pendingRenderMode = visualizer;
46 m_pendingRenderMode = visualizer;
47+ qDebug() << "connecting to mapper";
46− connect(qquickWindow, &QQuickWindow::beforeSynchronizing, this, &DebuggingController::applyRenderMode, Qt::DirectConnection);
48+ connect(qquickWindow, SIGNAL(beforeSynchronizing()), &m_mapper, SLOT(map()), Qt::DirectConnection);
49+ m_mapper.setMapping(qquickWindow, qquickWindow);
48 QQuickWindowPrivate *winPriv = QQuickWindowPrivate::get(qquickWindow);
51 QQuickWindowPrivate *winPriv = QQuickWindowPrivate::get(qquickWindow);
49 winPriv->customRenderMode = visualizer.toLatin1();
52 winPriv->customRenderMode = visualizer.toLatin1();
@@ -53,13 +56,13 @@ void DebuggingController::SetSceneGraphVisualizer(const QString &visualizer)
56−void DebuggingController::applyRenderMode() {
59+void DebuggingController::applyRenderMode(QObject* sender) {
57− qDebug() << "applyRenderMode called" << sender();
60+ qDebug() << "applyRenderMode called" << sender;
58− QQuickWindow *qquickWindow = dynamic_cast<QQuickWindow*>(sender());
61+ QQuickWindow *qquickWindow = dynamic_cast<QQuickWindow*>(sender);
59− qDebug() << "window is" << qquickWindow << sender() << sender()->metaObject()->className();
62+ qDebug() << "window is" << qquickWindow;
61 QMutexLocker lock(&m_renderModeMutex);
64 QMutexLocker lock(&m_renderModeMutex);
62− disconnect(qquickWindow, &QQuickWindow::beforeSynchronizing, this, &DebuggingController::applyRenderMode);
65+ disconnect(qquickWindow, SIGNAL(beforeSynchronizing()), &m_mapper, SLOT(map()));
64 qDebug() << "mutex locked";
67 qDebug() << "mutex locked";
65#if QT_VERSION >= QT_VERSION_CHECK(5, 5, 0)
68#if QT_VERSION >= QT_VERSION_CHECK(5, 5, 0)