┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews/kitemlistcontroller.cpp
diff options
context:
space:
mode:
authorFrank Reininghaus <[email protected]>2011-12-03 18:09:34 +0100
committerFrank Reininghaus <[email protected]>2011-12-03 18:09:34 +0100
commit27339e15c6f18e0f4b250995b384ae648657d8e4 (patch)
tree7345fecf4491d76465fa2843b4195da6ee0d3125 /src/kitemviews/kitemlistcontroller.cpp
parentc16c6f76a6d51f4800ded240db6552017447faac (diff)
Update the current item during rubber band selections
Diffstat (limited to 'src/kitemviews/kitemlistcontroller.cpp')
-rw-r--r--src/kitemviews/kitemlistcontroller.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/kitemviews/kitemlistcontroller.cpp b/src/kitemviews/kitemlistcontroller.cpp
index 746df4d1d..9bd65dc2e 100644
--- a/src/kitemviews/kitemlistcontroller.cpp
+++ b/src/kitemviews/kitemlistcontroller.cpp
@@ -460,6 +460,16 @@ bool KItemListController::mouseMoveEvent(QGraphicsSceneMouseEvent* event, const
KItemListRubberBand* rubberBand = m_view->rubberBand();
if (rubberBand->isActive()) {
QPointF endPos = transform.map(event->pos());
+
+ // Update the current item.
+ const int newCurrent = m_view->itemAt(endPos);
+ if (newCurrent >= 0) {
+ // It's expected that the new current index is also the new anchor (bug 163451).
+ m_selectionManager->endAnchoredSelection();
+ m_selectionManager->setCurrentItem(newCurrent);
+ m_selectionManager->beginAnchoredSelection(newCurrent);
+ }
+
if (m_view->scrollOrientation() == Qt::Vertical) {
endPos.ry() += m_view->scrollOffset();
if (m_view->itemSize().width() < 0) {