diff options
author | Samuel Rødal <samuel.rodal@nokia.com> | 2011-04-08 13:40:26 +0200 |
---|---|---|
committer | Samuel Rødal <samuel.rodal@nokia.com> | 2011-04-08 14:17:04 +0200 |
commit | 8339acac3c35ad7f884c985631b57fb91b516406 (patch) | |
tree | 30f2562de4d37f4043c203e431e0daa41c9a9056 /src/plugins/platforms/wayland/qwaylandwindow.cpp | |
parent | 0df7976dd42d9407fc492d15c1ac4577f387134a (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.cpp | 7 |
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 |