From e0ee9cfe312d1fcda7d7cdcfcf7195ae75531c71 Mon Sep 17 00:00:00 2001 From: Liang Qi Date: Fri, 12 Apr 2024 14:11:00 +0200 Subject: [PATCH] QGestureManager: use gesture owner target if topLevelAt returns nullptr MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit For security reason, Wayland doesn't provide global position for top level windows, so topLevelAt is not supported. Fixes: QTBUG-113404 Pick-to: 6.5 6.2 5.15 Change-Id: Id60b8b77a1843344db4d4e4c13382ad87adac806 Reviewed-by: Tor Arne Vestbø (cherry picked from commit 10c3dd87d3bc2e84d4f477888622f5fc7ed5d502) Reviewed-by: Qt Cherry-pick Bot --- src/widgets/kernel/qgesturemanager.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/widgets/kernel/qgesturemanager.cpp b/src/widgets/kernel/qgesturemanager.cpp index c93876c5005..edb159bbbfa 100644 --- a/src/widgets/kernel/qgesturemanager.cpp +++ b/src/widgets/kernel/qgesturemanager.cpp @@ -610,7 +610,8 @@ void QGestureManager::deliverEvents(const QSet &gestures, QWidget *child = topLevel->childAt(topLevel->mapFromGlobal(pt)); target = child ? child : topLevel; } - } else { + } + if (!target) { // or use the context of the gesture QObject *context = m_gestureOwners.value(gesture, 0); if (context->isWidgetType())