summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/wayland/qwaylandwindow.cpp
diff options
context:
space:
mode:
authorSamuel Rødal <samuel.rodal@nokia.com>2011-04-08 13:40:26 +0200
committerSamuel Rødal <samuel.rodal@nokia.com>2011-04-08 14:17:04 +0200
commit8339acac3c35ad7f884c985631b57fb91b516406 (patch)
tree30f2562de4d37f4043c203e431e0daa41c9a9056 /src/plugins/platforms/wayland/qwaylandwindow.cpp
parent0df7976dd42d9407fc492d15c1ac4577f387134a (diff)
Prevented crash due to dangling pointer in QWaylandInputDevice.
When a QWaylandWindow is destroyed we need to make sure it's not still referenced by QWaylandInputDevice.
Diffstat (limited to 'src/plugins/platforms/wayland/qwaylandwindow.cpp')
-rw-r--r--src/plugins/platforms/wayland/qwaylandwindow.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/plugins/platforms/wayland/qwaylandwindow.cpp b/src/plugins/platforms/wayland/qwaylandwindow.cpp
index c7cd1476d..d58b39dcf 100644
--- a/src/plugins/platforms/wayland/qwaylandwindow.cpp
+++ b/src/plugins/platforms/wayland/qwaylandwindow.cpp
@@ -41,9 +41,10 @@
#include "qwaylandwindow.h"
+#include "qwaylandbuffer.h"
#include "qwaylanddisplay.h"
+#include "qwaylandinputdevice.h"
#include "qwaylandscreen.h"
-#include "qwaylandbuffer.h"
#include <QtGui/QWidget>
#include <QtGui/QWindowSystemInterface>
@@ -66,6 +67,10 @@ QWaylandWindow::~QWaylandWindow()
{
if (mSurface)
wl_surface_destroy(mSurface);
+
+ QList<QWaylandInputDevice *> inputDevices = mDisplay->inputDevices();
+ for (int i = 0; i < inputDevices.size(); ++i)
+ inputDevices.at(i)->handleWindowDestroyed(this);
}
WId QWaylandWindow::winId() const