Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Option to disable kinetic scrolling #40

Closed
DataBeaver opened this issue May 16, 2020 · 12 comments
Closed

Option to disable kinetic scrolling #40

DataBeaver opened this issue May 16, 2020 · 12 comments
Labels
enhancement New feature or request ui Related to user interface and QML

Comments

@DataBeaver
Copy link
Contributor

I have a mouse with a freely rotating wheel for quick scrolling. When looking through a long history I like to set the wheel spinning and then instantly stop when I see the thing I want. However Mirage's kinetic scrolling can easily scroll several screenfuls past the point where I wanted to stop. It's possible to effect an instant stop by pressing a mouse button, but this is an extra action I have to perform with my fingers compared to every other program. Given that the freely rotating wheel already does the inertia part on the physical device, I think a setting to disable kinetic scrolling would be appropriate. Maybe even make it the default when using a mouse, because users of traditional clicky wheels probably don't expect it either.

@mirukana mirukana added enhancement New feature or request ui Related to user interface and QML labels May 16, 2020
@vSLG
Copy link
Contributor

vSLG commented May 18, 2020

@DataBeaver, how does #43 affect your scrolling despite the "trackpad" name?

@DataBeaver
Copy link
Contributor Author

It does prevent the issue of scrolling past where I wanted to stop, but it also seems to be ignoring some wheel events when turning the wheel very fast.

@DataBeaver
Copy link
Contributor Author

Actually, wheel events being ignored is probably not because of this. It happens without the modifications too. And there seems to be some kind of threshold for the event rate above which the scrolling suddenly speeds up significantly.

Setting the flickDeceleration property in HListView to a large value solves the stopping issue in what I feel is a more elegant way. Values in the range of 10000-20000 seem good, but obviously it can't just be statically set to something that large or it will make scrolling very annoying for touch users.

@vSLG
Copy link
Contributor

vSLG commented May 18, 2020

@DataBeaver, it may not be ignoring your events. Wheel events that happen faster than refresh rate, are summed up. So it's not ignoring, but summing up scroll events. Flickable component (which ListView and GridView inherits from) has a property maximumFlickVelocity. I suggest you trying to change its value to 10000 instead of 4000. It is defined here. Also keep your flickDeceleration higher.

I have thought about increasing maximumFlickVelocity when the option useTrackpadFix is enabled. On my trackpad, I can barely feel a speed limit.

@DataBeaver
Copy link
Contributor Author

maximumFlickVelocity doesn't seem to affect it. The feeling of wheel events being eaten happens at low speeds. If I'm at the bottom of the timeline and quickly turn the mouse wheel upwards, it will then take only two slow clicks of the wheel to get back to the bottom. If I do the same thing in a web browser, it will take 6-8 clicks.

It might not be explicitly ignoring wheel events, but if each event just resets the flick speeds instead of directly moving the scroll position, the effect is much the same. When multiple events occur in quick succession, the previous flick has not had time to complete and the total distance scrolled will be less than if those events came at a slower pace.

@vSLG
Copy link
Contributor

vSLG commented May 18, 2020

@DataBeaver, I made some changes to improve scrolling precision on trackpads. How is it behaving on your device? In here, I can make very small amount of scroll and scroll at lightning speed and stop immediately.

mirage

@DataBeaver
Copy link
Contributor Author

With the latest changes it works more like a traditional, non-touch application. Which is what I want when using it with a traditional, non-touch mouse.

@mirukana
Copy link
Owner

The PR has now been merged.

@toger5
Copy link

toger5 commented Sep 18, 2020

without the kinetic scrolling the speed is just much to low. how can i change that value (the max kinetec speed property has no effect)

@mirukana
Copy link
Owner

Added a nonKineticScrollingSpeed setting in 7587e55, you can set for example 2.0 to scroll twice as fast.

@toger5
Copy link

toger5 commented Sep 24, 2020

I installed the toolchain and compiled the dev branch to test 7587e55. Ther is an error when running. I will try in the upcoming days. Or open an issues if that error stays

@toger5
Copy link

toger5 commented Sep 24, 2020

Okay that was totally my fault.
i didnt install the requirements.txt with the dev branch but with master. looked through your latest commits and found that you added plyer.
now it works!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request ui Related to user interface and QML
Projects
None yet
Development

No branches or pull requests

4 participants