48
48
m_enabledEvents = true;
51
52
if (w->mouseGrabberItem() == this) {
52
53
QQuickItem::ungrabMouse();
55
QMouseEvent ev(*event);
56
QCoreApplication::sendEvent(w, &ev);
58
m_passthroughGrabbed = NULL;
59
QQuickItem* currentGrab = w->mouseGrabberItem();
60
if (currentGrab != this) {
61
m_passthroughGrabbed = currentGrab;
63
connect(currentGrab, SIGNAL(clicked(QQuickMouseEvent*)), SIGNAL(clicked(QQuickMouseEvent*)));
64
connect(currentGrab, SIGNAL(doubleClicked(QQuickMouseEvent*)), SIGNAL(doubleClicked(QQuickMouseEvent*)));
65
connect(currentGrab, SIGNAL(pressAndHold(QQuickMouseEvent*)), SIGNAL(pressAndHold(QQuickMouseEvent*)));
67
connect(currentGrab, SIGNAL(released(QQuickMouseEvent*)), SLOT(onReleased(QQuickMouseEvent*)));
68
connect(currentGrab, SIGNAL(canceled()), SLOT(clearConnected()));
69
connect(currentGrab, SIGNAL(canceled()), SIGNAL(canceled()));
55
QMouseEvent ev(*event);
56
QCoreApplication::sendEvent(w, &ev);
58
m_passthroughGrabbed = NULL;
59
QQuickItem* currentGrab = w->mouseGrabberItem();
60
if (currentGrab && currentGrab != this) {
61
m_passthroughGrabbed = currentGrab;
64
connect(currentGrab, SIGNAL(clicked(QQuickMouseEvent*)), SIGNAL(clicked(QQuickMouseEvent*)));
65
connect(currentGrab, SIGNAL(doubleClicked(QQuickMouseEvent*)), SIGNAL(doubleClicked(QQuickMouseEvent*)));
66
connect(currentGrab, SIGNAL(pressAndHold(QQuickMouseEvent*)), SIGNAL(pressAndHold(QQuickMouseEvent*)));
68
connect(currentGrab, SIGNAL(released(QQuickMouseEvent*)), SLOT(onGrabbedReleased(QQuickMouseEvent*)));
69
connect(currentGrab, SIGNAL(canceled()), SLOT(clearConnected()));
70
connect(currentGrab, SIGNAL(canceled()), SIGNAL(canceled()));
72
} else if (!currentGrab) {
73
// need to re-grab the mouse area
74
QQuickMouseArea::grabMouse();
72
78
m_enabledEvents = true;
76
void PassthroughMouseArea::onReleased(QQuickMouseEvent* event)
82
void PassthroughMouseArea::onGrabbedReleased(QQuickMouseEvent* event)
84
QQuickMouseArea::mouseUngrabEvent();
78
85
Q_EMIT released(event);
80
87
// Needs to be queued, otherwise we will miss the click event.