qt5base-lts/tests/auto/widgets/graphicsview
Volker Hilsheimer dad1e14941 Forward touchEvents to children inside QGraphicsProxyWidget
This reapplies the fix from 1ecf2212fa,
using QApplication::translateRawTouchEvent to dispatch the touch event
received by the QGraphicsProxyWidget to the relevant child widgets
under each touch point.

In addition, limit the implicit grabbing of each touch point before
sending the event to those cases where we have to: touch pads, and
if the target widget comes from a closest-widget matching. And don't
call the QTouchEvent override of QEvent::setAccepted() on QTouchEvent
instances in QGraphicsView classes, as this will override each event
point's acceptance state.

This way, we can identify which touch points have been accepted after
event delivery, any only implicitly grab those points that were.
Otherwise, touch points not accepted by a proxied widget hierarchy
will still be part of an accepted event, and be grabbed by the
viewport of the QGraphicsView. This would then lead to infinite
recursion when the QGraphicsProxyWidget passes the TouchUpdate event
on to each touch point's grabber.

Re-activate the test case, and extend it with more combinations.
Refactor touch-event recording to make it easier to test multi-touch
scenarios.

Task-number: QTBUG-45737
Fixes: QTBUG-67819
Pick-to: 6.2
Change-Id: Id5611f4feecb43b9367d9c2c71ad863b117efbcb
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2021-09-06 19:41:22 +00:00
..
qgraphicsanchorlayout Remove the qmake project files 2021-01-07 15:32:28 +01:00
qgraphicsanchorlayout1 Remove the qmake project files 2021-01-07 15:32:28 +01:00
qgraphicseffectsource Remove the qmake project files 2021-01-07 15:32:28 +01:00
qgraphicsgridlayout Remove the qmake project files 2021-01-07 15:32:28 +01:00
qgraphicsitem Remove the qmake project files 2021-01-07 15:32:28 +01:00
qgraphicsitemanimation Remove the qmake project files 2021-01-07 15:32:28 +01:00
qgraphicslayout Remove the qmake project files 2021-01-07 15:32:28 +01:00
qgraphicslayoutitem Remove the qmake project files 2021-01-07 15:32:28 +01:00
qgraphicslinearlayout Remove the qmake project files 2021-01-07 15:32:28 +01:00
qgraphicsobject Remove the qmake project files 2021-01-07 15:32:28 +01:00
qgraphicspixmapitem Remove the qmake project files 2021-01-07 15:32:28 +01:00
qgraphicspolygonitem Remove the qmake project files 2021-01-07 15:32:28 +01:00
qgraphicsproxywidget Forward touchEvents to children inside QGraphicsProxyWidget 2021-09-06 19:41:22 +00:00
qgraphicsscene tests: Remove unused SRCDIR defines 2021-08-17 12:41:57 +00:00
qgraphicssceneindex Remove the qmake project files 2021-01-07 15:32:28 +01:00
qgraphicstransform Remove the qmake project files 2021-01-07 15:32:28 +01:00
qgraphicsview Move QGraphicsProxyWidget test into correct test case 2021-08-30 18:20:08 +02:00
qgraphicswidget Blacklist flaky QGraphicsWidget test function for macOS 2021-09-06 20:13:11 +02:00
CMakeLists.txt Reactivate QGraphics(Proxy)Widget unit tests 2021-08-30 16:20:08 +00:00