diff options
author | Volker Hilsheimer <volker.hilsheimer@qt.io> | 2022-11-30 16:17:18 +0100 |
---|---|---|
committer | Shawn Rutledge <shawn.rutledge@qt.io> | 2022-12-02 23:10:05 +0000 |
commit | 7956d9e06032e5488d57cf1dc1c9aae0e7172a20 (patch) | |
tree | 87d258709c7826e8403ef9b4b78584d6492ff22c /src/widgets/kernel | |
parent | f6b137bdc43d4021cbbe602759dbcced2e04d638 (diff) |
Deliver tablet events to the toplevel widget if there is no child
QWidgetWindow dispatched only tablet presses to the toplevel widget if
no child was found at the position; other events, such as hover events,
were discarded. The tabletTracking test case even documented that
shortcoming in a comment.
Fix that by falling back to the toplevel widget for any event. As
before, only press events initialize the tablet grabbing target widget.
Remove the now unneeded parent widget from the test case, and move the
test class into the only test function that uses it.
Amends ea615b421b76668332a3029ad31fa725b5bb9e58 and
8fd6cef3724b2d676c5f6ae235956192d85eac39.
Pick-to: 6.4
Fixes: QTBUG-108747
Change-Id: I79050f1e063931e439945f64b50712dcc1ecb18c
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Diffstat (limited to 'src/widgets/kernel')
-rw-r--r-- | src/widgets/kernel/qwidgetwindow.cpp | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/widgets/kernel/qwidgetwindow.cpp b/src/widgets/kernel/qwidgetwindow.cpp index b29cfe67c8..7a3c38bb8d 100644 --- a/src/widgets/kernel/qwidgetwindow.cpp +++ b/src/widgets/kernel/qwidgetwindow.cpp @@ -1053,11 +1053,10 @@ void QWidgetWindow::handleTabletEvent(QTabletEvent *event) if (!widget) { widget = m_widget->childAt(event->position().toPoint()); - if (event->type() == QEvent::TabletPress) { - if (!widget) - widget = m_widget; + if (!widget) + widget = m_widget; + if (event->type() == QEvent::TabletPress) qt_tablet_target = widget; - } } if (widget) { |