]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Fix unwanted triggering of items
authorFrank Reininghaus <frank78ac@googlemail.com>
Tue, 2 Aug 2011 07:24:17 +0000 (09:24 +0200)
committerFrank Reininghaus <frank78ac@googlemail.com>
Tue, 2 Aug 2011 07:25:41 +0000 (09:25 +0200)
An item should only be triggered after a mouse release
event if the mouse press has been done at the same position.

src/kitemviews/kitemlistcontroller.cpp
src/kitemviews/kitemlistcontroller.h

index b709e5606c3419cb14f87ce3570abccfa8ca11e3..a30c461cdbfd722177f32fe577df5dbdffd3cc9b 100644 (file)
@@ -36,7 +36,8 @@ KItemListController::KItemListController(QObject* parent) :
     m_selectionBehavior(NoSelection),
     m_model(0),
     m_view(0),
-    m_selectionManager(new KItemListSelectionManager(this))
+    m_selectionManager(new KItemListSelectionManager(this)),
+    m_pressedIndex(-1)
 {
 }
 
@@ -130,6 +131,8 @@ bool KItemListController::mousePressEvent(QGraphicsSceneMouseEvent* event, const
 {
     Q_UNUSED(event);
     Q_UNUSED(transform);
+    const QPointF pos = transform.map(event->pos());
+    m_pressedIndex = m_view->itemAt(pos);
     return false;
 }
 
@@ -145,7 +148,7 @@ bool KItemListController::mouseReleaseEvent(QGraphicsSceneMouseEvent* event, con
     if (m_view) {
         const QPointF pos = transform.map(event->pos());
         const int index = m_view->itemAt(pos);
-        if (index >= 0) {
+        if (index >= 0 && index == m_pressedIndex) {
             bool emitItemClicked = true;
             if (event->button() & Qt::LeftButton) {
                 if (m_view->isAboveExpansionToggle(index, pos)) {
@@ -160,6 +163,7 @@ bool KItemListController::mouseReleaseEvent(QGraphicsSceneMouseEvent* event, con
         }
     }
 
+    m_pressedIndex = -1;
     return false;
 }
 
index 4407e34453a53a3c78d3457bb64cfce4bd6888a0..86f2b4ea62dd309f152868506f12acf2cb5e43a4 100644 (file)
@@ -111,6 +111,7 @@ private:
     KItemModelBase* m_model;
     KItemListView* m_view;
     KItemListSelectionManager* m_selectionManager;
+    int m_pressedIndex;
 };
 
 #endif