diff options
author | Mitch Curtis <mitch.curtis@qt.io> | 2016-11-23 17:14:14 +0100 |
---|---|---|
committer | Mitch Curtis <mitch.curtis@qt.io> | 2016-11-24 14:19:59 +0000 |
commit | aa06a424c5b40d7961a3928e12e59a0aff855675 (patch) | |
tree | 797afe809ebf7fc61c2ebd929f5e12c8ddce62be /src | |
parent | 2e5c411c26c0c173516b61569df375d767253efd (diff) |
SwipeDelegate: fix swipes that begin over a child item of a delegate
If the mouse was pressed over a child item of the delegate, the event's
position will be for that item, rather than the entire control. To
fix this, we need to set the correct pressPoint. To avoid duplicating
QQuickAbstractButton::mousePressEvent()'s code, we simply set the
correct pressPoint after calling it in
QQuickSwipeDelegatePrivate::handleMousePressEvent().
Task-number: QTBUG-57271
Change-Id: I7204d6176c755512eeeb0b1a57a920fbab40392c
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/quicktemplates2/qquickswipedelegate.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/quicktemplates2/qquickswipedelegate.cpp b/src/quicktemplates2/qquickswipedelegate.cpp index 743f38ff..5430a4de 100644 --- a/src/quicktemplates2/qquickswipedelegate.cpp +++ b/src/quicktemplates2/qquickswipedelegate.cpp @@ -598,6 +598,10 @@ bool QQuickSwipeDelegatePrivate::handleMousePressEvent(QQuickItem *item, QMouseE // events will go through the regular channels (mousePressEvent()) until then. if (qFuzzyIsNull(swipePrivate->position)) { q->mousePressEvent(event); + // The press point could be incorrect if the press happened over a child item, + // so we correct it after calling the base class' mousePressEvent(), rather + // than having to duplicate its code just so we can set the pressPoint. + pressPoint = item->mapToItem(q, event->pos()); return true; } |