summaryrefslogtreecommitdiffstats
path: root/src/compositor/compositor_api/qwaylandcompositor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/compositor/compositor_api/qwaylandcompositor.cpp')
-rw-r--r--src/compositor/compositor_api/qwaylandcompositor.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/compositor/compositor_api/qwaylandcompositor.cpp b/src/compositor/compositor_api/qwaylandcompositor.cpp
index 053235432..e95e9a72e 100644
--- a/src/compositor/compositor_api/qwaylandcompositor.cpp
+++ b/src/compositor/compositor_api/qwaylandcompositor.cpp
@@ -162,8 +162,12 @@ QWaylandCompositorPrivate::QWaylandCompositorPrivate(QWaylandCompositor *composi
{
if (QGuiApplication::platformNativeInterface())
display = static_cast<wl_display*>(QGuiApplication::platformNativeInterface()->nativeResourceForIntegration("server_wl_display"));
- if (!display)
+
+ if (!display) {
display = wl_display_create();
+ ownsDisplay = true;
+ }
+
eventHandler.reset(new QtWayland::WindowSystemEventHandler(compositor));
timer.start();
@@ -246,7 +250,8 @@ QWaylandCompositorPrivate::~QWaylandCompositorPrivate()
// Some client buffer integrations need to clean up before the destroying the wl_display
client_buffer_integration.reset();
- wl_display_destroy(display);
+ if (ownsDisplay)
+ wl_display_destroy(display);
}
void QWaylandCompositorPrivate::preInit()