diff options
| -rw-r--r-- | src/kitemviews/kitemlistcontainer.cpp | 4 | ||||
| -rw-r--r-- | src/kitemviews/kitemlistview.cpp | 9 | ||||
| -rw-r--r-- | src/kitemviews/kitemlistview.h | 6 |
3 files changed, 18 insertions, 1 deletions
diff --git a/src/kitemviews/kitemlistcontainer.cpp b/src/kitemviews/kitemlistcontainer.cpp index 5500851c8..3bd8067a8 100644 --- a/src/kitemviews/kitemlistcontainer.cpp +++ b/src/kitemviews/kitemlistcontainer.cpp @@ -261,7 +261,9 @@ void KItemListContainer::updateScrollOffsetScrollBar() smoothScroller = m_verticalSmoothScroller; scrollOffsetScrollBar = verticalScrollBar(); singleStep = view->itemSize().height(); - pageStep = view->size().height(); + // We cannot use view->size().height() because this height might + // include the header widget, which is not part of the scrolled area. + pageStep = view->verticalPageStep(); } else { smoothScroller = m_horizontalSmoothScroller; scrollOffsetScrollBar = horizontalScrollBar(); diff --git a/src/kitemviews/kitemlistview.cpp b/src/kitemviews/kitemlistview.cpp index 6a68ae798..9ebad7f8b 100644 --- a/src/kitemviews/kitemlistview.cpp +++ b/src/kitemviews/kitemlistview.cpp @@ -388,6 +388,15 @@ void KItemListView::setGeometry(const QRectF& rect) } } +qreal KItemListView::verticalPageStep() const +{ + qreal headerHeight = 0; + if (m_headerWidget->isVisible()) { + headerHeight = m_headerWidget->size().height(); + } + return size().height() - headerHeight; +} + int KItemListView::itemAt(const QPointF& pos) const { QHashIterator<int, KItemListWidget*> it(m_visibleItems); diff --git a/src/kitemviews/kitemlistview.h b/src/kitemviews/kitemlistview.h index 2baf20c94..cd59ddcb5 100644 --- a/src/kitemviews/kitemlistview.h +++ b/src/kitemviews/kitemlistview.h @@ -163,6 +163,12 @@ public: virtual void setGeometry(const QRectF& rect); /** + * @return The page step which should be used by the vertical scroll bar. + * This is the height of the view except for the header widget. + */ + qreal verticalPageStep() const; + + /** * @return Index of the item that is below the point \a pos. * The position is relative to the upper right of * the visible area. Only (at least partly) visible |
