summaryrefslogtreecommitdiffstats
path: root/src/compositor/compositor_api/qwaylandsurface.cpp
diff options
context:
space:
mode:
authorJørgen Lind <jorgen.lind@theqtcompany.com>2015-05-13 14:28:30 +0200
committerJørgen Lind <jorgen.lind@theqtcompany.com>2015-08-28 13:10:32 +0200
commit5042279f99c58e02ab028a3b452578f75652793e (patch)
treec595ece6badc40f71e6248da73439856bc8c0b58 /src/compositor/compositor_api/qwaylandsurface.cpp
parentbd2409f6ea3616486973d0daf91811af1507c5d1 (diff)
make sure that views don't have a surface
when the surface is deleted. Also, don't access the surface in the destructor of the view Change-Id: I4dac3d8e8f77cd0d83b9bc5c3fb948f3172b95a3
Diffstat (limited to 'src/compositor/compositor_api/qwaylandsurface.cpp')
-rw-r--r--src/compositor/compositor_api/qwaylandsurface.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/compositor/compositor_api/qwaylandsurface.cpp b/src/compositor/compositor_api/qwaylandsurface.cpp
index da7963994..6b1290acd 100644
--- a/src/compositor/compositor_api/qwaylandsurface.cpp
+++ b/src/compositor/compositor_api/qwaylandsurface.cpp
@@ -51,6 +51,7 @@
#include "qwaylandcompositor.h"
#include "qwaylandclient.h"
#include "qwaylandsurface_p.h"
+#include "qwaylandview_p.h"
#include "qwaylandbufferref.h"
#include "qwaylandoutput.h"
@@ -70,6 +71,13 @@ QWaylandSurfacePrivate::QWaylandSurfacePrivate(wl_client *wlClient, quint32 id,
, client(QWaylandClient::fromWlClient(compositor, wlClient))
{}
+QWaylandSurfacePrivate::~QWaylandSurfacePrivate()
+{
+ for (int i = 0; i < views.size(); i++) {
+ QWaylandViewPrivate::get(views.at(i))->markSurfaceAsDestroyed(q_func());
+ }
+ views.clear();
+}
class QWaylandSurfaceEnterEventPrivate
{