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

Scrolling is miserable in continuous scroll mode #1455

Open
Emirlol opened this issue Dec 10, 2024 · 1 comment
Open

Scrolling is miserable in continuous scroll mode #1455

Emirlol opened this issue Dec 10, 2024 · 1 comment
Labels
bug Something isn't working

Comments

@Emirlol
Copy link

Emirlol commented Dec 10, 2024

Describe the bug
There's no decent way of scrolling while reading in continuous scroll mode.

  • Scrolling via mouse instantly moves the page, making it impossible to continue reading without searching around for where you were at before scrolling.
  • Scrolling via keyboard (arrow and page keys) does have smooth scrolling, but the animation is very jagged and it's not smooth at all. It's hard to keep reading while scrolling is taking place, and the animation takes quite long to complete. This is especially noticable with a high refresh rate monitor (I have 144hz one). Turning on the Reduce Animation toggle fixes this by removing smooth scrolling, but this doesn't make things any better. The issue with mouse scroll happens here as well.
  • There's no auto scrolling via middle mouse click either.

To Reproduce
Steps to reproduce the behavior:

  • Honestly, just scroll

Expected behavior
Smooth scrolling that would be similar to what you see when scrolling on a web browser, while being consistent across different methods of scrolling.

Version:

  • Foliate version: 3.2.0
  • OS/Distribution and version: Arch Linux (version does not apply to arch)
  • Desktop environment: KDE Plasma 6.2.4
  • Installation method: AUR, the foliate package

Additional remarks
I've searched around in issues and the only thing I found that seems to be close is #1221, but the result is just smooth scrolling going poof.

About the smooth scrolling being jagged, this seems to be caused by the app running on very low fps in general since text selection is also quite laggy. This shouldn't be caused by my hardware, as it's pretty decent.

@Emirlol Emirlol added the bug Something isn't working label Dec 10, 2024
@johnfactotum
Copy link
Owner

johnfactotum commented Dec 11, 2024

Scrolling via keyboard (arrow and page keys) does have smooth scrolling, but the animation is very jagged and it's not smooth at all.

This scrolling is currently animated with requestAnimationFrame(), so it would, at least in theory, perform worse than the WebKitGTK's native scrolling animation. This was done in johnfactotum/foliate-js@81c595f. I suppose we should revisit this, or at least make a special case for scrolled mode.

There's no auto scrolling via middle mouse click either.

See #507.

I've searched around in issues and the only thing I found that seems to be close is #1221, but the result is just smooth scrolling going poof.

The rationale was to make it consistent with other GTK widgets, which does not have smooth scrolling for discrete wheel devices.

From https://gitlab.gnome.org/GNOME/epiphany/-/issues/1765 and related issues, it seems WebKitGTK's smooth scrolling is slow as well.

I guess one can just add an option for it.

This shouldn't be caused by my hardware, as it's pretty decent.

Well, it's possible that WebKitGTK or even GTK itself would not run as smooth on some otherwise capable hardware setups. It could also be due to how the system is configured. But of course it's possible as well that Foliate is simply being inefficiently slow.

Previously, there was a bug where if you have invert mode enabled, the animation would become really slow. This seems to have been fixed in recent versions of WebKitGTK.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants