From ca27d9021f60175932626e7511cc1e7f0545f6e6 Mon Sep 17 00:00:00 2001 From: Johan Klokkhammer Helsing Date: Tue, 14 Feb 2017 15:09:46 +0100 Subject: Don't try to send touch cancel events to null surfaces Previously, when closing a surface by touch, the touch ungrab event would cause a null dereference. Change-Id: Icbb11c8bc096fef1e5cfd563d3657a39a14a5b5b Reviewed-by: Giulio Camuffo --- src/compositor/compositor_api/qwaylandquickitem.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/compositor/compositor_api/qwaylandquickitem.cpp b/src/compositor/compositor_api/qwaylandquickitem.cpp index ee9fa5427..a39eff9e8 100644 --- a/src/compositor/compositor_api/qwaylandquickitem.cpp +++ b/src/compositor/compositor_api/qwaylandquickitem.cpp @@ -678,8 +678,11 @@ void QWaylandQuickItem::touchEvent(QTouchEvent *event) void QWaylandQuickItem::touchUngrabEvent() { Q_D(QWaylandQuickItem); - for (auto seat : d->touchingSeats) - seat->sendTouchCancelEvent(surface()->client()); + + if (d->shouldSendInputEvents()) + for (auto seat : d->touchingSeats) + seat->sendTouchCancelEvent(surface()->client()); + d->touchingSeats.clear(); } -- cgit v1.2.3