┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews/kitemlistcontroller.cpp
diff options
context:
space:
mode:
authorFrank Reininghaus <[email protected]>2011-08-02 09:24:17 +0200
committerFrank Reininghaus <[email protected]>2011-08-02 09:25:41 +0200
commit94f3320444b9243bf52e4578ca9043fa690c5e4c (patch)
treec4988c54c2e50e37e02cd43ad82cdde76469e62f /src/kitemviews/kitemlistcontroller.cpp
parent23f189feef7c9556d7fa821e9ef17a3a1723720b (diff)
Fix unwanted triggering of items
An item should only be triggered after a mouse release event if the mouse press has been done at the same position.
Diffstat (limited to 'src/kitemviews/kitemlistcontroller.cpp')
-rw-r--r--src/kitemviews/kitemlistcontroller.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/kitemviews/kitemlistcontroller.cpp b/src/kitemviews/kitemlistcontroller.cpp
index b709e5606..a30c461cd 100644
--- a/src/kitemviews/kitemlistcontroller.cpp
+++ b/src/kitemviews/kitemlistcontroller.cpp
@@ -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;
}