┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/klistview.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/klistview.cpp')
-rw-r--r--src/klistview.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/klistview.cpp b/src/klistview.cpp
index 1729e1a80..206853530 100644
--- a/src/klistview.cpp
+++ b/src/klistview.cpp
@@ -699,6 +699,7 @@ void KListView::setSelection(const QRect &rect,
}
QItemSelection selection;
+ QItemSelection deselect;
QModelIndexList dirtyIndexes = d->intersectionSet(rect);
foreach (const QModelIndex &index, dirtyIndexes)
{
@@ -707,9 +708,15 @@ void KListView::setSelection(const QRect &rect,
if (d->isIndexSelected.contains(index))
{
if (!d->isIndexSelected[index])
+ {
selection.select(index, index);
-
- d->isIndexSelected[index] = true;
+ d->isIndexSelected[index] = true;
+ }
+ else
+ {
+ deselect.select(index, index);
+ d->isIndexSelected[index] = false;
+ }
}
else
{
@@ -747,8 +754,6 @@ void KListView::setSelection(const QRect &rect,
}
}
- QItemSelection deselect;
-
foreach (const QModelIndex &index, d->isIndexSelected.keys())
{
if (!rect.intersects(visualRect(index)))