hydrusnetwork / hydrus

A personal booru-style media tagger that can import files and tags from your hard drive and popular websites. Content can be shared with other users via user-run servers.
http://hydrusnetwork.github.io/hydrus/
Other
2.38k stars 157 forks source link

Mouse scrolling sensitivity is extremely high with Wacom tablet scroll binding #1481

Open thecodewarrior opened 11 months ago

thecodewarrior commented 11 months ago

Hydrus version

551

Qt major version

Qt 6

Operating system

macOS other (specify in comments)

Install method

Third party (AUR, Docker, Chocolatey, etc. Specify in comments)

Install and OS comments

I'm running macOS 13 "Ventura" and installed it using homebrew

Bug description and reproduction

I use a Wacom tablet (One by Wacom) and have one of the buttons bound to scroll. However, in Hydrus, this causes it to scroll extremely quickly (the tablet probably sends many short scroll inputs in very rapid succession). Measuring how long it takes me to scroll through my collection, it scrolls at 260 rows per second, which is uncontrollable.

Mouse wheel events should come with a pixel delta (the Qt 6 event seems to), which will be much more reliable than trying to infer based on the angle delta.

This is a near-duplicate of #710, but the trackpad code seemingly doesn't help with the wacom tablet.

Log output

No response

prismflasher commented 11 months ago

This is also the case on Windows, so maybe unrelated to the linked issue? I had been using an image from my hydrus library as a reference, so i reached over to pan over it using the scroll button on my pen and... the image scrolled so fast it disappeared and i had to reset zoom to find it.

thecodewarrior commented 11 months ago

It's not related to the OS, but it's the same "lots of input events" issue that the trackpad had.

char-lock commented 11 months ago

Briefly looking over the source, it looks like the previous handler relies on checking the event delta, but it could be that in the case of the tablet, it's sending multiple events with a standard delta, so the code that handles trackpads wouldn't work in that instance. This is purely speculation, since I don't have access to a tablet to be able to test if that's in fact what's happening.