diff options
Diffstat (limited to 'src/kcategorizedview.cpp')
| -rw-r--r-- | src/kcategorizedview.cpp | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/kcategorizedview.cpp b/src/kcategorizedview.cpp index 3255de9a4..cc83e2de9 100644 --- a/src/kcategorizedview.cpp +++ b/src/kcategorizedview.cpp @@ -98,6 +98,17 @@ const QModelIndexList &KCategorizedView::Private::intersectionSet(const QRect &r intersectedIndexes.clear(); + int itemHeight; + + if (listView->gridSize().isEmpty()) + { + itemHeight = biggestItemSize.height(); + } + else + { + itemHeight = listView->gridSize().height(); + } + // Lets find out where we should start int top = proxyModel->rowCount() - 1; int bottom = 0; @@ -108,10 +119,13 @@ const QModelIndexList &KCategorizedView::Private::intersectionSet(const QRect &r index = elementDictionary[proxyModel->index(middle, 0)]; indexVisualRect = visualRect(index); + // We need the whole height (not only the visualRect). This will help us to update + // all needed indexes correctly (ereslibre) + indexVisualRect.setHeight(indexVisualRect.height() + (itemHeight - indexVisualRect.height())); if (qMax(indexVisualRect.topLeft().y(), indexVisualRect.bottomRight().y()) < qMin(rect.topLeft().y(), - rect.bottomRight().y())) + rect.bottomRight().y())) { bottom = middle + 1; } |
