Details
-
Bug
-
Resolution: Fixed
-
P2: Important
-
5.0.2, 5.1.0
-
None
-
7caf5624d (dev), 4116ff2ae (6.8), 355be8bb6 (dev), e116b9594 (dev), 8b9ae6fa3 (6.8), c6ee51927 (6.8), 2576437ad (dev)
Description
A Flickable that is being flicked should continue to hold the mouse grab until the flick ends. This works correctly with the following example:
1. Flick the view
2. While the view is still moving, quickly press in the purple area and drag left/right
3. The total view should pan left/right (the outermost Flickable retains the grab)
import QtQuick 2.0 Flickable { width: 400; height: 400 contentHeight: height contentWidth: width * 3 Row { Rectangle { width: 400; height: 400; color: "green" } Rectangle { width: 400; height: 400; color: "blue" clip: true Flickable { width: parent.width height: 200 anchors.verticalCenter: parent.verticalCenter flickableDirection: Flickable.HorizontalFlick contentHeight: height contentWidth: width + 100 Rectangle { anchors.fill: parent color: "purple" // uncomment to see issue /*MouseArea { anchors.fill: parent onClicked: console.log("clicked") }*/ } } } Rectangle { width: 400; height: 400; color: "yellow" } } }
However, if you uncomment the MouseArea indicated above, the following sequence occurs:
1. Flick the view
2. While the view is still moving, quickly press in the purple area and drag left/right
3. The purple area incorrectly pans left/right (it has grabbed the mouse from the outermost Flickable)
This is a regression from QtQuick 1 – both versions work correctly in that case.
Attachments
Issue Links
- relates to
-
QTBUG-77629 QML Flickable stealing touch events from PinchArea
- Closed
For Gerrit Dashboard: QTBUG-34881 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
602848,14 | Flickable: when the user is flicking, don't start a drag on a child | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
603102,9 | Flickable childMouseEventFilter: return early for multi-touch events | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
603818,6 | tst_map_keepgrab: tempoarily disable parts of the test | dev | qt/qtlocation | Status: MERGED | +2 | 0 |
603854,3 | tst_map_keepgrab: restore test to conform to expected behavior | dev | qt/qtlocation | Status: MERGED | +2 | 0 |
603915,2 | Flickable childMouseEventFilter: return early for multi-touch events | 6.8 | qt/qtdeclarative | Status: MERGED | +2 | 0 |
604522,2 | tst_map_keepgrab: tempoarily disable parts of the test | 6.8 | qt/qtlocation | Status: MERGED | +2 | 0 |
604626,2 | Flickable: when the user is flicking, don't start a drag on a child | 6.8 | qt/qtdeclarative | Status: MERGED | +2 | 0 |