From 5311b5155e21606519de473fb3f9919cbed7d599 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 27 Jun 2017 12:07:07 +0530 Subject: [PATCH] Linux: Fix slow mouse wheel scrolling in Cover grid because of Qt bug --- src/calibre/gui2/library/alternate_views.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/calibre/gui2/library/alternate_views.py b/src/calibre/gui2/library/alternate_views.py index 8bf14ef50b..c84686cffe 100644 --- a/src/calibre/gui2/library/alternate_views.py +++ b/src/calibre/gui2/library/alternate_views.py @@ -1020,13 +1020,13 @@ class GridView(QListView): return super(GridView, self).selectionCommand(index, event) def wheelEvent(self, ev): - if ev.phase() not in (Qt.ScrollUpdate, 0): - # 0 is Qt.NoScrollPhase which is not yet available in PyQt + if ev.phase() not in (Qt.ScrollUpdate, Qt.NoScrollPhase): return number_of_pixels = ev.pixelDelta() - number_of_degrees = ev.angleDelta() / 8 + number_of_degrees = ev.angleDelta() / 8.0 b = self.verticalScrollBar() - if number_of_pixels.isNull(): + if number_of_pixels.isNull() or islinux: + # pixelDelta() is broken on linux with wheel mice dy = number_of_degrees.y() / 15.0 # Scroll by approximately half a row dy = int(math.ceil((dy) * b.singleStep() / 2.0))