mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
E-book viewer: Handle horizontal wheel events as section jumps in paged mode
Also handle horizontal wheel events in cover flow. Fixes #2019426 [vertical mousewheel function not implemented](https://bugs.launchpad.net/calibre/+bug/2019426)
This commit is contained in:
parent
5083bc80db
commit
04fa47ddaf
@ -231,6 +231,9 @@ class CoverFlow(pictureflow.PictureFlow):
|
||||
return self.minimumSize()
|
||||
|
||||
def wheelEvent(self, ev):
|
||||
if ev.angleDelta().x():
|
||||
d = ev.angleDelta().x()
|
||||
if ev.angleDelta().y():
|
||||
d = ev.angleDelta().y()
|
||||
if abs(d) > 0:
|
||||
ev.accept()
|
||||
|
@ -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
|
||||
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
|
||||
|
Loading…
x
Reference in New Issue
Block a user