Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
None
-
5.10.0 Alpha
-
None
Description
import QtQuick 2.0 import Qt.labs.handlers 1.0 import QtQuick.Controls 2.2 ApplicationWindow { visible: true width: 200; height: 200 Button { width: 100; height: 50 text: "Drag me" onClicked: console.log("clicked") DragHandler { } } }
The initial problem occurs in
void QQuickWindowPrivate::deliverMatchingPointsToItem(QQuickItem *item, QQuickPointerEvent *pointerEvent, bool handlersOnly) { ... if (pointerEvent->allPointsAccepted() && !pointerEvent->isReleaseEvent()) return; .... }
That is, if the DragHandler is interested, it does a passive grab and accepts the eventpoint. (Shouldn't it?) And then we don't deliver to the Button. So maybe it should check allPointsGrabbed() instead. Well, if I do that, then we have the opposite problem: the Button grabs, and the DragHandler doesn't get updates, despite having a passive grab.
So again this proves that we need to make it deliver to passive grabbers regardless of the exclusive grab, IMO.
Attachments
Issue Links
- relates to
-
QTBUG-71218 DragHandler in a Controls 2 Button: button stays in pressed state after drag begins
- Closed