aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichal Guminiak <michal.guminiak@teleca.com>2010-10-04 14:05:15 +0200
committerMichal Guminiak <michal.guminiak@teleca.com>2010-10-05 14:13:04 +0200
commitd12161cb13c96107d632d6c1b6ac630c780a78c7 (patch)
tree22dcfbd78743aeba4cef9fbb2921ce299c7483d8
parent97f0de1baae52e7ab2797a951a3d1643c24ad938 (diff)
Fixes: NB#196090 - MButton - tap&hold is not working as expected
RevBy: Armin, Anna Details: This patch fixes the issue when scene window is handling Tap&Hold gesture. The gesture is accepted by scene window and mscene was registering that as a cause for sending cancel event. This patch disables sending cancel event by mscene.
-rw-r--r--src/corelib/widgets/mscenewindow.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/corelib/widgets/mscenewindow.cpp b/src/corelib/widgets/mscenewindow.cpp
index 8d059a12..b33aeb87 100644
--- a/src/corelib/widgets/mscenewindow.cpp
+++ b/src/corelib/widgets/mscenewindow.cpp
@@ -289,7 +289,12 @@ void MSceneWindow::tapAndHoldGestureEvent(QGestureEvent *event, QTapAndHoldGestu
{
Q_D(MSceneWindow);
- if (gesture->state() == Qt::GestureFinished) {
+ if (gesture->state() == Qt::GestureStarted) {
+ // We will send cancel event on our own, unregistering this gesture from mscene.
+ MScene *mScene = qobject_cast<MScene *>(scene());
+ if (mScene)
+ mScene->d_func()->notifyGestureCaughtByPanel(gesture->gestureType());
+ } else if (gesture->state() == Qt::GestureFinished) {
QGraphicsSceneContextMenuEvent contextEvent(QEvent::GraphicsSceneContextMenu);
contextEvent.setPos(gesture->position());