From c3fafd16d380e031463c3f9e25320e914afbccf0 Mon Sep 17 00:00:00 2001 From: Giulio Camuffo Date: Mon, 19 Jan 2015 14:53:00 +0200 Subject: Unset the pointer focus if we're deleting the view holding it Change-Id: I546c6ab2a060d76de18330766a0b2fba419589bd Reviewed-by: Laszlo Agocs --- src/compositor/compositor_api/qwaylandsurfaceview.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/compositor') diff --git a/src/compositor/compositor_api/qwaylandsurfaceview.cpp b/src/compositor/compositor_api/qwaylandsurfaceview.cpp index e6fd90587..664ab9805 100644 --- a/src/compositor/compositor_api/qwaylandsurfaceview.cpp +++ b/src/compositor/compositor_api/qwaylandsurfaceview.cpp @@ -42,6 +42,8 @@ #include "qwaylandsurfaceview.h" #include "qwaylandsurface.h" #include "qwaylandsurface_p.h" +#include "qwaylandcompositor.h" +#include "qwaylandinput.h" QT_BEGIN_NAMESPACE @@ -65,6 +67,10 @@ QWaylandSurfaceView::QWaylandSurfaceView(QWaylandSurface *surf) QWaylandSurfaceView::~QWaylandSurfaceView() { if (d->surface) { + QWaylandInputDevice *i = d->surface->compositor()->defaultInputDevice(); + if (i->mouseFocus() == this) + i->setMouseFocus(nullptr, QPointF()); + d->surface->destroy(); d->surface->d_func()->views.removeOne(this); } -- cgit v1.2.3