qtdeclarative/tests/auto/quick
Richard Moe Gustavsen 1bac9de113 QQuickFlickable: avoid processing the same event twice
If Flickable has an exclusive grab (e.g if it's being dragged), and
at the same time, a child has a passive grab (e.g a TapHandler inside
a child of the content item), Flickable ends up getting the same pointer
events twice.

The reason this happens is because Flickable has a childMouseEventFilter.
So the flickable will first get all the pointer events since it has an
exclusive grab, just to see that the filter will receive the same
events once more, as they next are delivered to the passive grabbers.

The result is that Flickable will handle all pointer events
(move, release etc) twice when it has en exclusive grab, which will
even cause the flickable from stop flicking prematurely if the mouse
release ends up outside the bounds of the flickable (because of a double
call to handleReleaseEvent(), which will set stealMouse to false too
early).

To fix this, this patch will make sure that we don't handle any pointer
events in the childMouseEventFilter if we already have an exclusive grab.
After all, having an exclusive grab means that we're already getting the
events the "normal" way, and shouldn't handle the same events once more.

Fixes: QTBUG-104987
Pick-to: 6.5 6.4 6.2
Change-Id: Iaed49cb860cf50ea38a70a6e546d9dcf25cce444
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
2023-05-02 12:12:35 +02:00
..
doc Replace AUTO_RESOURCE_PREFIX with QTP0001 policy 2023-04-04 13:18:00 +02:00
drawingmodes Retire the qt_parse_all_arguments 2023-01-20 16:40:42 +01:00
examples Retire the qt_parse_all_arguments 2023-01-20 16:40:42 +01:00
geometry Change the license of all CMakeLists.txt and *.cmake files to BSD 2022-09-07 17:01:30 +02:00
nodes Change the license of all CMakeLists.txt and *.cmake files to BSD 2022-09-07 17:01:30 +02:00
nokeywords Change the license of all CMakeLists.txt and *.cmake files to BSD 2022-09-07 17:01:30 +02:00
pointerhandlers Blacklist failing tests in tst_flickableinterop 2023-04-28 00:33:29 +00:00
propertyrequirements Port from qAsConst() to std::as_const() 2022-10-07 23:38:56 +02:00
qquickaccessible Accessibility: respect value in attached Accessible in controls 2023-04-21 16:42:56 +02:00
qquickanchors Fix bug when center aligning anchors on items with fractional sizes 2023-03-09 23:04:02 +00:00
qquickanimatedimage AnimatedImage: Add ability to configure sourceSize 2023-01-26 08:20:00 +00:00
qquickanimatedsprite Retire the qt_parse_all_arguments 2023-01-20 16:40:42 +01:00
qquickanimationcontroller Change the license of all CMakeLists.txt and *.cmake files to BSD 2022-09-07 17:01:30 +02:00
qquickanimations Retire the qt_parse_all_arguments 2023-01-20 16:40:42 +01:00
qquickanimators Retire the qt_parse_all_arguments 2023-01-20 16:40:42 +01:00
qquickapplication Retire the qt_parse_all_arguments 2023-01-20 16:40:42 +01:00
qquickbehaviors Correctly discover metaType for UntypedProxyProperty 2023-04-05 22:47:33 +02:00
qquickborderimage Retire the qt_parse_all_arguments 2023-01-20 16:40:42 +01:00
qquickboundaryrule Retire the qt_parse_all_arguments 2023-01-20 16:40:42 +01:00
qquickcanvasitem Enable tst_QQuickCanvasItem on Android 2023-04-12 03:36:21 +02:00
qquickcolorgroup Port from container::count() and length() to size() 2022-10-07 23:38:48 +02:00
qquickdeliveryagent qquickwindow: Clear hover when a window is hidden 2023-04-25 08:07:19 +00:00
qquickdesignersupport Retire the qt_parse_all_arguments 2023-01-20 16:40:42 +01:00
qquickdrag Change the license of all CMakeLists.txt and *.cmake files to BSD 2022-09-07 17:01:30 +02:00
qquickdragattached QQuickDrag: correctly support text and image mime types 2022-11-11 12:07:42 +01:00
qquickdroparea Retire the qt_parse_all_arguments 2023-01-20 16:40:42 +01:00
qquickdynamicpropertyanimation Retire the qt_parse_all_arguments 2023-01-20 16:40:42 +01:00
qquickflickable QQuickFlickable: avoid processing the same event twice 2023-05-02 12:12:35 +02:00
qquickflipable Flipable: switch sides at 90 degrees regardless of camera distance 2023-02-08 07:44:52 +08:00
qquickfocusscope Retire the qt_parse_all_arguments 2023-01-20 16:40:42 +01:00
qquickfontloader Retire the qt_parse_all_arguments 2023-01-20 16:40:42 +01:00
qquickfontloader_static Retire the qt_parse_all_arguments 2023-01-20 16:40:42 +01:00
qquickfontmetrics Port from container::count() and length() to size() 2022-10-07 23:38:48 +02:00
qquickframebufferobject Retire the qt_parse_all_arguments 2023-01-20 16:40:42 +01:00
qquickgraphicsinfo Retire the qt_parse_all_arguments 2023-01-20 16:40:42 +01:00
qquickgridview Retire the qt_parse_all_arguments 2023-01-20 16:40:42 +01:00
qquickimage tst_qquickimage: modernize 2023-04-11 13:51:29 +02:00
qquickimageprovider Retire the qt_parse_all_arguments 2023-01-20 16:40:42 +01:00
qquickitem Retire the qt_parse_all_arguments 2023-01-20 16:40:42 +01:00
qquickitem2 Tests: Silence compiler warnings when checking bitfields 2023-04-21 16:43:23 +02:00
qquickitemlayer Retire the qt_parse_all_arguments 2023-01-20 16:40:42 +01:00
qquickitemrhiintegration Replace AUTO_RESOURCE_PREFIX with Qt CMake Policy in examples, tests 2023-02-21 19:45:44 +01:00
qquicklayouts Fix StackLayout to keep the current visible item after insert/removal 2023-04-26 10:57:26 +02:00
qquicklistview QQuickItemView: Skip instantiating delegates if size is 0 2023-04-20 09:26:38 +02:00
qquicklistview2 QQuickItemView: Skip instantiating delegates if size is 0 2023-04-20 09:26:38 +02:00
qquickloader Fix multiple object creation in Loader 2023-03-10 08:18:12 +00:00
qquickmousearea Tests: Silence compiler warnings when checking bitfields 2023-04-21 16:43:23 +02:00
qquickmultipointtoucharea MultiTouchArea: only subscribe to hover events when enabled 2023-04-15 05:51:38 +02:00
qquickpainteditem Port from container::count() and length() to size() 2022-10-07 23:38:48 +02:00
qquickpalette Retire the qt_parse_all_arguments 2023-01-20 16:40:42 +01:00
qquickpath Retire the qt_parse_all_arguments 2023-01-20 16:40:42 +01:00
qquickpathview Retire the qt_parse_all_arguments 2023-01-20 16:40:42 +01:00
qquickpincharea Retire the qt_parse_all_arguments 2023-01-20 16:40:42 +01:00
qquickpixmapcache Retire the qt_parse_all_arguments 2023-01-20 16:40:42 +01:00
qquickpositioners Retire the qt_parse_all_arguments 2023-01-20 16:40:42 +01:00
qquickrectangle Retire the qt_parse_all_arguments 2023-01-20 16:40:42 +01:00
qquickrendercontrol Retire the qt_parse_all_arguments 2023-01-20 16:40:42 +01:00
qquickrepeater tst_qquickrepeater: Ensure proper clenaup 2023-03-31 12:40:14 +02:00
qquickscreen Retire the qt_parse_all_arguments 2023-01-20 16:40:42 +01:00
qquickshadereffect Retire the qt_parse_all_arguments 2023-01-20 16:40:42 +01:00
qquickshape Retire the qt_parse_all_arguments 2023-01-20 16:40:42 +01:00
qquickshortcut Retire the qt_parse_all_arguments 2023-01-20 16:40:42 +01:00
qquicksmoothedanimation Retire the qt_parse_all_arguments 2023-01-20 16:40:42 +01:00
qquickspringanimation Retire the qt_parse_all_arguments 2023-01-20 16:40:42 +01:00
qquickspritesequence Retire the qt_parse_all_arguments 2023-01-20 16:40:42 +01:00
qquickstates Allow disabling internal deferred properties 2023-03-29 14:32:03 +00:00
qquickstyledtext Port from container::count() and length() to size() - V5 2022-10-13 00:18:35 +02:00
qquicksystempalette Retire the qt_parse_all_arguments 2023-01-20 16:40:42 +01:00
qquicktableview TableInstanceModel: handle roleName invalidation 2023-04-18 18:50:02 +02:00
qquicktext Retire the qt_parse_all_arguments 2023-01-20 16:40:42 +01:00
qquicktextdocument Retire the qt_parse_all_arguments 2023-01-20 16:40:42 +01:00
qquicktextedit Retire the qt_parse_all_arguments 2023-01-20 16:40:42 +01:00
qquicktextinput tst_QQuickTextInput: Stabilize clipboard related functions on XCB 2023-04-12 11:07:07 +00:00
qquicktextmetrics Change the license of all CMakeLists.txt and *.cmake files to BSD 2022-09-07 17:01:30 +02:00
qquicktimeline Change the license of all CMakeLists.txt and *.cmake files to BSD 2022-09-07 17:01:30 +02:00
qquicktreeview QQuickTreeView test: Fix valid compiler warning 2023-04-18 13:11:16 +02:00
qquickview Retire the qt_parse_all_arguments 2023-01-20 16:40:42 +01:00
qquickview_extra Retire the qt_parse_all_arguments 2023-01-20 16:40:42 +01:00
qquickvisualdatamodel Models: Straighten out model and modelData properties 2023-03-24 12:12:06 +01:00
qquickwindow Retire the qt_parse_all_arguments 2023-01-20 16:40:42 +01:00
rendernode Retire the qt_parse_all_arguments 2023-01-20 16:40:42 +01:00
scenegraph scenegraph: un-blacklist the render autotest on Android 2023-03-16 15:59:37 +01:00
sharedimage Change the license of all CMakeLists.txt and *.cmake files to BSD 2022-09-07 17:01:30 +02:00
softwarerenderer Retire the qt_parse_all_arguments 2023-01-20 16:40:42 +01:00
touchmouse QQuickMouseArea: do not overload pressed-signal 2023-01-24 13:41:45 +01:00
CMakeLists.txt Enable tst_QQuickCanvasItem on Android 2023-04-12 03:36:21 +02:00