mirror of
https://invent.kde.org/system/dolphin
synced 2024-11-05 18:47:12 +00:00
Do not skip rows in when clicking the empty area of the scroll bar
The height of the header widget must be subtracted from the view's height in Details View to determine the "pageStep" for the scroll bar. BUG: 315619 FIXED-IN: 4.10.2 REVIEW: 109210
This commit is contained in:
parent
acec0e6509
commit
6ba70a6fbf
3 changed files with 18 additions and 1 deletions
|
@ -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();
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -162,6 +162,12 @@ public:
|
|||
/** @reimp */
|
||||
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
|
||||
|
|
Loading…
Reference in a new issue