diff options
author | Jørgen Lind <jorgen.lind@theqtcompany.com> | 2015-05-13 14:28:30 +0200 |
---|---|---|
committer | Jørgen Lind <jorgen.lind@theqtcompany.com> | 2015-08-28 13:10:32 +0200 |
commit | 5042279f99c58e02ab028a3b452578f75652793e (patch) | |
tree | c595ece6badc40f71e6248da73439856bc8c0b58 /src/compositor/compositor_api/qwaylandsurface.cpp | |
parent | bd2409f6ea3616486973d0daf91811af1507c5d1 (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.cpp | 8 |
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 { |