In 4.20 viewer, mouse wheel scroll is malfunctioning in paged mode

Bug #1886231 reported by Simone fusi on 2020-07-03
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
calibre
Undecided
Unassigned

Bug Description

- Calibre 4.20
- Windows 10

Using viewer in paged mode, turning a page requires two or three steps of the mouse wheel instead of one.
Using the option "Mouse wheel scrolls by screens full instead of pages" doesn't change the behavior.
Scrolling with the wheel in flow mode seems to work correctly.

Works for me, does clicking the mouse wheel generate line scroll rather
than page scroll events? If that is the case then in 4.20 the behavior
has indeed changed to require multiple line scrolls before turning the
page.

Fixed in branch master. The fix will be in the next release. calibre is usually released every alternate Friday.

 status fixreleased

Changed in calibre:
status: New → Fix Released
Matus Tom Balcak (maradar) wrote :

Calibre 4.21.0 64-bit
Windows 10

Problem still persists even after update to the latest version.

Then i'm afraid you are out of luck, it means your mouse wheel is set to
scroll per pixel, which means that the viewer will only turn a page
after some threshold of pixels is scrolled. you can switch to flow mode
in the viewer which works better with pixel scrollig.

Matus Tom Balcak (maradar) wrote :

strange since it is working without any issues in 4.19.0

Kovid Goyal (kovid) wrote :

Nothig strange about it. Read the whats new page. In 4.20 a change was
made to support two finger scrolling with touchpads, which is pixel
based and too fast. So now pixel based scrolling is slowed down. It is
impossible to support both touchpads and wheel mice that report pixel
scroll amounts. Configure your wheel mouse to generate line or page
scroll events instead of pixel scrolls and you will be fine. Or use flow
mode if you really want to scroll by pixels.

Simone fusi (simone-fusi) wrote :

I'm using a M90 Logitech mouse, with detentes, using the standard Microsoft driver.
Rotating the wheel a step, the MOUSEWHEEL message sent from the driver contains a Delta value of 120.
120 is the standard value chosen by Microsoft: it isn't an high-resolution scroll wheel.

Kovid Goyal (kovid) wrote :

I am afraid there is no such thing as a standard delta value. And indeed
calibre doesn't use delta values to decide how to scroll, it uses
deltaMode, https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent/deltaMode

Wheel events from the OS are not consistent across
devices/drivers/versions and platforms. The browser engine used by
calibre converts that mess into a mode, which calibre then uses to
decide how to scroll. Sadly for your mouse the engine thinks the mode
you want is pixel mode. I am fairly sure that there will be some setting
somewhere you can toggel to get your mouse to send events the engine
believes are page or line scroll events, but not having used windows
intwenty years, I cant tell you where that is offhand.

H G (apo86) wrote :

Just in case anyone else stumbles upon this thread looking for a fix on Windows 10:

Launch the settings app, click "Devices", click "Mouse".

There you can change between "X number of lines at a time" and "One screen at a time".

Calibre doesn't care about the second setting at all (besides that system wide page scrolling in my opinion is atrocious, but whatever).

So what you need to do is increase the number of lines. For me personally the default was 3. With my Logitech mouse I had to set it to 4 to get full page scrolling in Calibre. With a 5€ noname wireless mouse I had to set it to 5.
I don't know if it also differs by ebook. I don't have that many different ones.

eternyx (runningdoglackey) wrote :

For anyone following or searching for this bug, it looks like there's already a patch for the next version (4.22) that will add granular control over this behavior, which seems like a great idea. Kovid hasn't abandoned us scroll wheel sinners.

https://github.com/kovidgoyal/calibre/commit/4ad884f96cdeeadf4dd3b12af3cd80a1b1222453

It's good to know about those windows mouse settings H G mentioned, though. In linux, there's imwheel, which can be configured to change mouse behavior on a per-app basis (since xinput doesn't allow changing scroll behavior).

Kovid Goyal (kovid) wrote :

Oh yeah, I forgot to update this bug report. I concluded that there is
no robust way to differentiate between touchpads and mice based, so
there is now a setting allowing the user to say exactly how many pixels
of scrolling should constitute a page turn.

Matus Tom Balcak (maradar) wrote :

I am glad to report that issue can be closed as resolved.

4.22.0
Windows 10

I set the pixel threshold to 40 and the page nicely turn with every click on scroll movement.

Thank you

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers