diff options
| author | Kai Uwe Broulik <[email protected]> | 2014-06-30 13:56:45 +0200 |
|---|---|---|
| committer | Kai Uwe Broulik <[email protected]> | 2014-06-30 13:56:45 +0200 |
| commit | fb9c403518fc6f0996185eac00a7f15da2f586fc (patch) | |
| tree | 85a7a1fba1c0517c9f04f98d3d24fad75bbcaa3a | |
| parent | 6cddb788a0ebd109412fe882c02fa6f572fe0bc2 (diff) | |
Add support for high-precision touchpad scrolling
REVIEW: 119001
| -rw-r--r-- | src/kitemviews/kitemlistcontainer.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/kitemviews/kitemlistcontainer.cpp b/src/kitemviews/kitemlistcontainer.cpp index 765b366d1..5e45a1766 100644 --- a/src/kitemviews/kitemlistcontainer.cpp +++ b/src/kitemviews/kitemlistcontainer.cpp @@ -185,11 +185,15 @@ void KItemListContainer::wheelEvent(QWheelEvent* event) KItemListSmoothScroller* smoothScroller = scrollHorizontally ? m_horizontalSmoothScroller : m_verticalSmoothScroller; - const int numDegrees = event->delta() / 8; - const int numSteps = numDegrees / 15; - const QScrollBar* scrollBar = smoothScroller->scrollBar(); - smoothScroller->scrollTo(scrollBar->value() - numSteps * scrollBar->pageStep() / 4); + if (!event->pixelDelta().isNull()) { + const int numPixels = event->pixelDelta().y(); + smoothScroller->scrollTo(scrollBar->value() - numPixels); + } else { + const int numDegrees = event->angleDelta().y() / 8; + const int numSteps = numDegrees / 15; + smoothScroller->scrollTo(scrollBar->value() - numSteps * scrollBar->pageStep() / 4); + } event->accept(); } |
