diff options
author | Liang Qi <liang.qi@qt.io> | 2024-04-12 14:11:00 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2024-04-22 18:56:20 +0200 |
commit | 10c3dd87d3bc2e84d4f477888622f5fc7ed5d502 (patch) | |
tree | 011598068090fdcd7ffe3e593598aedafc547710 /src/widgets/kernel/qgesturemanager.cpp | |
parent | d935a89d2573d84720f17b3c36d5cdb0279f32e6 (diff) |
QGestureManager: use gesture owner target if topLevelAt returns nullptr
For security reason, Wayland doesn't provide global position for
top level windows, so topLevelAt is not supported.
Fixes: QTBUG-113404
Pick-to: 6.7 6.5 6.2 5.15
Change-Id: Id60b8b77a1843344db4d4e4c13382ad87adac806
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Diffstat (limited to 'src/widgets/kernel/qgesturemanager.cpp')
-rw-r--r-- | src/widgets/kernel/qgesturemanager.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/widgets/kernel/qgesturemanager.cpp b/src/widgets/kernel/qgesturemanager.cpp index c93876c500..edb159bbbf 100644 --- a/src/widgets/kernel/qgesturemanager.cpp +++ b/src/widgets/kernel/qgesturemanager.cpp @@ -610,7 +610,8 @@ void QGestureManager::deliverEvents(const QSet<QGesture *> &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()) |