summaryrefslogtreecommitdiffstats
path: root/src/widgets/itemviews/qabstractitemview.cpp
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2016-10-11 07:40:32 +0200
committerLiang Qi <liang.qi@qt.io>2016-10-11 07:40:32 +0200
commit905329200f2f3f9372bf07a001371c30c0663684 (patch)
treee6f072ea693c377ae306b3960f4bde36ee20bc17 /src/widgets/itemviews/qabstractitemview.cpp
parent91cde062968f97041bca8d2a30d13aa03b606c3d (diff)
parent1a78ef09b93b0a7337075555dc91032f39fab2a9 (diff)
Merge remote-tracking branch 'origin/5.7' into 5.8
Conflicts: src/gui/image/qpixmap.cpp src/widgets/kernel/qformlayout.cpp Change-Id: I8a8391a202adf7f18464a22ddf0a6c4974eab692
Diffstat (limited to 'src/widgets/itemviews/qabstractitemview.cpp')
-rw-r--r--src/widgets/itemviews/qabstractitemview.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/widgets/itemviews/qabstractitemview.cpp b/src/widgets/itemviews/qabstractitemview.cpp
index a4e24b80b1..fff09b46d0 100644
--- a/src/widgets/itemviews/qabstractitemview.cpp
+++ b/src/widgets/itemviews/qabstractitemview.cpp
@@ -1786,13 +1786,18 @@ void QAbstractItemView::mousePressEvent(QMouseEvent *event)
d->autoScroll = false;
d->selectionModel->setCurrentIndex(index, QItemSelectionModel::NoUpdate);
d->autoScroll = autoScroll;
- QRect rect(visualRect(d->currentSelectionStartIndex).center(), pos);
if (command.testFlag(QItemSelectionModel::Toggle)) {
command &= ~QItemSelectionModel::Toggle;
d->ctrlDragSelectionFlag = d->selectionModel->isSelected(index) ? QItemSelectionModel::Deselect : QItemSelectionModel::Select;
command |= d->ctrlDragSelectionFlag;
}
- setSelection(rect, command);
+
+ if ((command & QItemSelectionModel::Current) == 0) {
+ setSelection(QRect(pos, QSize(1, 1)), command);
+ } else {
+ QRect rect(visualRect(d->currentSelectionStartIndex).center(), pos);
+ setSelection(rect, command);
+ }
// signal handlers may change the model
emit pressed(index);