Feature request for elastic scrolling

As GNOME continues to refine its desktop, toolkit, and is beginning to expand its scope to include mobile phones and tablets, one thing has really stuck out to me. Unlike most modern touch-friendly operating systems, GNOME’s interface offer’s no elastic scrolling, making the scrolling, especially on touch interfaces and trackpads, feel clunky and unnatural.

Let me explain. On iOS, Android, Windows 8+, macOS, and so many other modern touch-based operating systems, when you reach the end of a scrollable list, webpage, or other scrollable UI element, you can continue to scroll past the end of the page, and it then gently scrolls back to the limit of the page, as though a spring or piece of elastic is pulling it back. It allows you to scroll past, but only so much, as the more you over-scroll, the harder it is to pull on the content.

This makes scrolling feel much more natural, and helps smooth things out when you hit the end of a document or list, providing instant, springy feedback. iOS does this especially well, and I really wish GNOME supported this feature. It can feel a bit rigid at times, and other times it can lack that tactile, responsive feedback. If GNOME could improve GTK to support this feature, it would make a MASSIVE difference with how it feels to interact with GNOME, as this feature makes those operating systems feel much more natural. Plus, as a bonus, it could be used on Epiphany, for example, to reload a page similar to Safari on iOS, or like other mobile browsers, which is a nice feature to have, and developers could use this to add additional features to their apps as so.

I recently found this video https://youtu.be/rAVV4kAYlI8 which gives a nice surface-level explanation for these subtle and often disregarded features, and it reminded me of what I subconsciously feel like GNOME lacks, namely the natural feedback of elastic scrolling.

PS: In that video, they show the equation Apple uses to calculate inertial scrolling. I’ve always felt like the scrolling on GNOME for touch screens is a bit too linear and touchy. Perhaps if GNOME used a similar response curve to calculate scrolling inertia, it would feel more natural as iOS has some of the highest quality touch-based inertial scrolling in my opinion.

Seems there is a patent on that, according to this gtk issue.

How is that possible though, if all of Apple’s competitors use their own implementation of it, couldn’t GNOME? It doesn’t really make sense. Nearly all mobile phones, tablets, and smart watches use it, as well as modern desktop operating systems… This has to be incorrect, right? Perhaps it’s true of a very specific implementation used by apple, which in fairness, is quite good. Even still, I’d have to guess it was implemented in the first iPhone or soon thereafter, so it would be expired in a few years.

Well, just looked into it. Apparently it’s a thing. Apple can be so petty!

For context, here’s the patent. Perhaps GNOME could design it differently to circumvent the patent. Also, I noticed that Ubuntu Touch has a very similar (though not identical) feature, and it is nice to have.