diff -r 5dc02b23752f -r 3e2da88830cd src/declarative/graphicsitems/qdeclarativemousearea_p_p.h --- a/src/declarative/graphicsitems/qdeclarativemousearea_p_p.h Tue Jul 06 15:10:48 2010 +0300 +++ b/src/declarative/graphicsitems/qdeclarativemousearea_p_p.h Wed Aug 18 10:37:55 2010 +0300 @@ -68,7 +68,7 @@ public: QDeclarativeMouseAreaPrivate() : absorb(true), hovered(false), pressed(false), longPress(false), - moved(false), drag(0) + moved(false), stealMouse(false), drag(0) { } @@ -78,6 +78,7 @@ { Q_Q(QDeclarativeMouseArea); q->setAcceptedMouseButtons(Qt::LeftButton); + q->setFiltersChildEvents(true); } void saveEvent(QGraphicsSceneMouseEvent *event) { @@ -88,9 +89,9 @@ lastModifiers = event->modifiers(); } - bool isConnected(const char *signal) { + bool isPressAndHoldConnected() { Q_Q(QDeclarativeMouseArea); - int idx = QObjectPrivate::get(q)->signalIndex(signal); + static int idx = QObjectPrivate::get(q)->signalIndex("pressAndHold(QDeclarativeMouseEvent*)"); return QObjectPrivate::get(q)->isSignalConnected(idx); } @@ -101,6 +102,7 @@ bool moved : 1; bool dragX : 1; bool dragY : 1; + bool stealMouse : 1; QDeclarativeDrag *drag; QPointF startScene; qreal startX;