diff options
author | Giulio Camuffo <giulio.camuffo@jollamobile.com> | 2014-06-09 11:44:32 +0300 |
---|---|---|
committer | Giulio Camuffo <giulio.camuffo@jollamobile.com> | 2014-07-08 12:21:19 +0200 |
commit | 0d597176e839c508e08a01707c6438fcff4c7054 (patch) | |
tree | 1294664800bebc2821beba780fed9b25b2656291 | |
parent | 139d0a658f2ca00cb1486454308977e760402949 (diff) |
Fix creation of custom shells
The previous virtual method initShell() was not working because
it was called from QWaylandCompositor constructor.
Replace that with a mthod to create the default shell to be
manually called by the compositors if they so choose.
Change-Id: I35a1dc0edfaf4237ca47b532645ac0d95752311c
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
-rw-r--r-- | examples/qml-compositor/main.cpp | 1 | ||||
-rw-r--r-- | examples/qwindow-compositor/qwindowcompositor.cpp | 1 | ||||
-rw-r--r-- | examples/server-buffer/compositor/main.cpp | 1 | ||||
-rw-r--r-- | src/compositor/compositor_api/qwaylandcompositor.cpp | 10 | ||||
-rw-r--r-- | src/compositor/compositor_api/qwaylandcompositor.h | 2 | ||||
-rw-r--r-- | src/compositor/wayland_wrapper/qwlcompositor.cpp | 1 |
6 files changed, 9 insertions, 7 deletions
diff --git a/examples/qml-compositor/main.cpp b/examples/qml-compositor/main.cpp index 91bc6677f..26e730d43 100644 --- a/examples/qml-compositor/main.cpp +++ b/examples/qml-compositor/main.cpp @@ -67,6 +67,7 @@ public: setResizeMode(QQuickView::SizeRootObjectToView); setColor(Qt::black); winId(); + addDefaultShell(); connect(this, SIGNAL(afterRendering()), this, SLOT(sendCallbacks())); } diff --git a/examples/qwindow-compositor/qwindowcompositor.cpp b/examples/qwindow-compositor/qwindowcompositor.cpp index 925e3214f..2cb1b3624 100644 --- a/examples/qwindow-compositor/qwindowcompositor.cpp +++ b/examples/qwindow-compositor/qwindowcompositor.cpp @@ -132,6 +132,7 @@ QWindowCompositor::QWindowCompositor(QOpenGLWindow *window) setOutputGeometry(QRect(QPoint(0, 0), window->size())); setOutputRefreshRate(qRound(qGuiApp->primaryScreen()->refreshRate() * 1000.0)); + addDefaultShell(); } QWindowCompositor::~QWindowCompositor() diff --git a/examples/server-buffer/compositor/main.cpp b/examples/server-buffer/compositor/main.cpp index 77c3a1a08..85503c62b 100644 --- a/examples/server-buffer/compositor/main.cpp +++ b/examples/server-buffer/compositor/main.cpp @@ -82,6 +82,7 @@ public: setColor(Qt::black); create(); grabWindow(); + addDefaultShell(); connect(this, SIGNAL(afterRendering()), this, SLOT(sendCallbacks())); diff --git a/src/compositor/compositor_api/qwaylandcompositor.cpp b/src/compositor/compositor_api/qwaylandcompositor.cpp index 1093cfc56..ef428a4eb 100644 --- a/src/compositor/compositor_api/qwaylandcompositor.cpp +++ b/src/compositor/compositor_api/qwaylandcompositor.cpp @@ -92,6 +92,11 @@ void QWaylandCompositor::addGlobalInterface(QWaylandGlobalInterface *interface) m_compositor->m_globals << interface; } +void QWaylandCompositor::addDefaultShell() +{ + addGlobalInterface(new QtWayland::Shell); +} + struct wl_display *QWaylandCompositor::waylandDisplay() const { return m_compositor->wl_display(); @@ -298,9 +303,4 @@ QWaylandSurfaceView *QWaylandCompositor::createView(QWaylandSurface *surface) return new QWaylandSurfaceView(surface); } -void QWaylandCompositor::initShell() -{ - addGlobalInterface(new QtWayland::Shell); -} - QT_END_NAMESPACE diff --git a/src/compositor/compositor_api/qwaylandcompositor.h b/src/compositor/compositor_api/qwaylandcompositor.h index 119e63f2d..2b7832d15 100644 --- a/src/compositor/compositor_api/qwaylandcompositor.h +++ b/src/compositor/compositor_api/qwaylandcompositor.h @@ -85,6 +85,7 @@ public: virtual ~QWaylandCompositor(); void addGlobalInterface(QWaylandGlobalInterface *interface); + void addDefaultShell(); struct wl_display *waylandDisplay() const; void frameStarted(); @@ -148,7 +149,6 @@ public: protected: QWaylandCompositor(QWindow *window, const char *socketName, QtWayland::Compositor *dptr); virtual void retainedSelectionReceived(QMimeData *mimeData); - virtual void initShell(); friend class QtWayland::Compositor; QtWayland::Compositor *m_compositor; diff --git a/src/compositor/wayland_wrapper/qwlcompositor.cpp b/src/compositor/wayland_wrapper/qwlcompositor.cpp index 062737476..e13fcfdb3 100644 --- a/src/compositor/wayland_wrapper/qwlcompositor.cpp +++ b/src/compositor/wayland_wrapper/qwlcompositor.cpp @@ -170,7 +170,6 @@ void Compositor::init() initializeHardwareIntegration(); initializeExtensions(); initializeDefaultInputDevice(); - m_qt_compositor->initShell(); } Compositor::~Compositor() |