diff options
| author | Frank Reininghaus <[email protected]> | 2011-12-03 18:09:34 +0100 |
|---|---|---|
| committer | Frank Reininghaus <[email protected]> | 2011-12-03 18:09:34 +0100 |
| commit | 27339e15c6f18e0f4b250995b384ae648657d8e4 (patch) | |
| tree | 7345fecf4491d76465fa2843b4195da6ee0d3125 /src/kitemviews/kitemlistcontroller.cpp | |
| parent | c16c6f76a6d51f4800ded240db6552017447faac (diff) | |
Update the current item during rubber band selections
Diffstat (limited to 'src/kitemviews/kitemlistcontroller.cpp')
| -rw-r--r-- | src/kitemviews/kitemlistcontroller.cpp | 10 |
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) { |
