diff options
Diffstat (limited to 'src/compositor/compositor_api/qwaylandcompositor.cpp')
-rw-r--r-- | src/compositor/compositor_api/qwaylandcompositor.cpp | 9 |
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() |