diff options
Diffstat (limited to 'src/kitemviews/kitemlistcontroller.cpp')
| -rw-r--r-- | src/kitemviews/kitemlistcontroller.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/kitemviews/kitemlistcontroller.cpp b/src/kitemviews/kitemlistcontroller.cpp index 91fb86806..b58ddfae6 100644 --- a/src/kitemviews/kitemlistcontroller.cpp +++ b/src/kitemviews/kitemlistcontroller.cpp @@ -131,10 +131,17 @@ bool KItemListController::inputMethodEvent(QInputMethodEvent* event) bool KItemListController::mousePressEvent(QGraphicsSceneMouseEvent* event, const QTransform& transform) { - Q_UNUSED(event); - Q_UNUSED(transform); const QPointF pos = transform.map(event->pos()); m_pressedIndex = m_view->itemAt(pos); + + m_selectionManager->setCurrentItem(m_pressedIndex); + + // The anchor for the current selection is updated except for Shift+LeftButton events + // (the current selection is continued with the previous anchor in that case). + if (!(event->buttons() & Qt::LeftButton && event->modifiers() & Qt::ShiftModifier)) { + m_selectionManager->setAnchorItem(m_pressedIndex); + } + return false; } |
