diff --git a/src/calibre/gui2/cover_flow.py b/src/calibre/gui2/cover_flow.py index f60e12d825..b662f2e55f 100644 --- a/src/calibre/gui2/cover_flow.py +++ b/src/calibre/gui2/cover_flow.py @@ -231,7 +231,10 @@ class CoverFlow(pictureflow.PictureFlow): return self.minimumSize() def wheelEvent(self, ev): - d = ev.angleDelta().y() + if ev.angleDelta().x(): + d = ev.angleDelta().x() + if ev.angleDelta().y(): + d = ev.angleDelta().y() if abs(d) > 0: ev.accept() (self.showNext if d < 0 else self.showPrevious)() diff --git a/src/pyj/read_book/paged_mode.pyj b/src/pyj/read_book/paged_mode.pyj index c868191f5a..23ecb1ee65 100644 --- a/src/pyj/read_book/paged_mode.pyj +++ b/src/pyj/read_book/paged_mode.pyj @@ -691,13 +691,18 @@ class HandleWheel: self.accumulated_scroll = 0 def onwheel(self, evt): - if not evt.deltaY: + if not (evt.deltaY or evt.deltaX): return - backward = evt.deltaY < 0 - if evt.deltaMode is window.WheelEvent.DOM_DELTA_PIXEL: - self.add_pixel_scroll(backward, Math.abs(evt.deltaY)) - else: - self.do_scroll(backward) + if evt.deltaY: + backward = evt.deltaY < 0 + if evt.deltaMode is window.WheelEvent.DOM_DELTA_PIXEL: + self.add_pixel_scroll(backward, Math.abs(evt.deltaY)) + else: + self.do_scroll(backward) + if evt.deltaX: + backward = evt.deltaX < 0 + self.do_section_jump(backward) + def add_pixel_scroll(self, backward, deltaY): now = window.performance.now() @@ -721,6 +726,9 @@ class HandleWheel: else: scroll_to_pos(pos) + def do_section_jump(self, backward): + self.reset() + next_spine_item(backward) wheel_handler = HandleWheel() onwheel = wheel_handler.onwheel