iOS like "rubber band" scrolling in Lion - Safari

Has anyone managed to disable the iOS like "rubber band" scrolling in the Lion version of Safari ? For instance when you scroll all the way up or down, a blank space is created, like on iOS , and releasing the scroll rubber bands the content to the top (or bottom).

MacBook Pro, Mac OS X (10.7)

Posted on Jul 29, 2011 11:20 PM

Reply
127 replies

Feb 7, 2012 8:10 PM in response to Alex Zavatone

I couldn't have said it better myself, Alex. I've been in the same boat as you, been in unnamed projects to make Lion better, etc.


I'm glad that Lion is there for people who like it. And I'm glad Snow Leopard is still around for those, like me, who prefer it. Snow Leopard is superior to Lion in every way that matters to me and that's why I stay with it.

Apr 14, 2012 7:02 AM in response to Allan Eckert

Right. And I came here looking for technical assistance. Unfortunately, there is apparently none available to fix this particular issue. Which is too bad, but it is still helpful to have this site to let me know not to bang my head trying to figure out a way to disable "bouncy" scrolling.


I really, really hate it. Seriously, it makes me ill, from motion sickness. And it annoys me to no end that I paid to upgrade to Lion, and in the process have downgraded my browsing experience. My solution is switch to non-Safari browsing, which is too bad, cause I was otherwise very happy w/ Safari. Is that a rant? I guess so. But if I hadn't come here and seen the link that you and others posted, I wouldn't have easily found a place to direct my complaint so that Apple will see it...


At the end of the day, this is about a community of Mac users helping each other. Swapping complaints is part of that communal experience, and will (hopefully) help lead to solutions. Telling someone with a legitimate issue to go join a Facebook group is about as antithetical to the idea of community as you get!

Apr 16, 2012 8:36 AM in response to White Rabbit

WR, I have been able to do a build of TextEdit that has the bouncy bits disabled. It's at home on one of my other Macs.


This is a first step.


I want to see if we can replace the app's plist in the (stupidly) protected Library folder with a variable that defaults to NO for bounces.


Also, I wonder if we could modify the scrollView header defailt value that hides in the system somewhere to set that to NO, but I'm not sure.


One BIG PROBLEM we have is that with many Lion codesigned apps, you can't modify one byte of the file or it will crash on launch. Totally blows. This is not the Apple we knew and loved.


Idoitic features like

"auto locking of files you haven't used in a while",

"bouncy views and scrollbars",

"sudden and automatic quitting of apps",

"versioning of things I don't want versioned",

"animated EVERYTHING".

"inability to turn gestures on or off on a per app basis",

"protected Library folder",

"code signing preventing us from ending app contents",


and not giving us control to turn these things off make Lion a terribly aggrivating experience and a NFW for me.


Why in **** should we have to pay money for an OS that has all this stuff - THAT WE WANT TO TURN OFF - and then have no (or no easy) way to actually turn them off? That is not an upgrade, that is a PITA.


Our time = money. And I want to keep the small amount of spare time that I have.


Thanks Apple. For making the OS suck and for screwing over your long time users.

Apr 16, 2012 4:25 PM in response to Király

Ya, I rebuilt the app from the source code in Xcode. What I want to do is find out how to put that "don't bounce" setting in a plist preference.


You can't modify the binary. If you try to, the code signing will force it to quit on launch.


Try it. Duplilcate the TextEdit app and right click on it and click Show Package Contents", then modify one of the files in there.


Close it and try to launch the app. BLAM. Instant crash.


Let me try to check the source to see if there is anything I can look at now.

Apr 28, 2012 2:00 PM in response to tbonecopper

Here is my research from the day.



On iOS, there is a thing called a UIScrollView. Setting bounces to 0 makes the scrolling not bounce.


Lion is different. It uses an NSScrollView. (I just did the research) In it is a property called "Elasticity" which determines this: Allow content to be scrolled past its bounds on this axis in an elastic fashion. Things that scroll generally sit within an NSScrollView on the screen. It turns out the NSScrollElasticity is responsable for that. It's defined in NSScrollView.h.



#if MAC_OS_X_VERSION_10_7 <= MAC_OS_X_VERSION_MAX_ALLOWED

enum {

NSScrollElasticityAutomatic = 0, // automatically determine whether to allow elasticity on this axis

NSScrollElasticityNone = 1, // disallow scrolling beyond document bounds on this axis

NSScrollElasticityAllowed = 2, // allow content to be scrolled past its bounds on this axis in an elastic fashion

};



If you open this folder, you can see the file on your hard drive.


/System/Library/Frameworks/Appkit.framework/Versions/C/Headers/NSScrollView.h


Dunno if modifying that file would help anything, but in any case, I would love for a preference file (pList) to automatically set all NSScrollViews for an app to use NSScrollView.NSScrollElasticity = NSScrollElasticityNone


I think that would work, but I don't yet know how to do it and do it for all apps.

Apr 29, 2012 9:15 AM in response to Alex Zavatone

Excellent work on this, Alex. ➕


I've tried quite a few combinations of things:


defaults write com.apple.safari NSScrollElasticityNone -bool yes

defaults write com.apple.safari NSScrollElasticityNone 1

defaults write com.apple.safari NSScrollView.NSScrollElasticity NSScrollElasticityNone

defaults write .GlobalPreferences NSScrollElasticityNone -bool yes

defaults write .GlobalPreferences NSScrollElasticityNone 1

defaults write .GlobalPreferences NSScrollView.NSScrollElasticity NSScrollElasticityNone

...and none have worked. 😟


I'm going to ask in another forum if anyone might know if and how it is possible to take your research to the next level.

Apr 30, 2012 2:59 PM in response to Alex Zavatone

Alex, just wanted to chime in and say, NICE WORK. Your findings make me optimistic! I, too, hate this unnecessary "elastic" effect (most notably in Safari) and am eager to see some software development to turn it the frack OFF. Maybe a System Preference we can install (or terminal hack we can apply) to disable it on our MacOS forever. Thank you!

May 8, 2012 9:25 AM in response to Fofer

Oh, you wonderful person, you.


I think I was given source code to a project that will do this last week, but I haven't had the time to boot to Lion and compile it yet.


This is the start of bringing sanity back to the Mac OS. The fact that we had to wait so long, that third parties had to do it and that Apple thinks that scroll elasticity/bouncing on the Mac is a good idea means that someone making the decisions for the GUI for Apple is still sick in the head.


Scroll elasticity on the Mac OS is the Clippy of the Mac world.


I will distribute this to the Xcode lists.


You are now on my Christmas list and in my Will.


If you want a copy of TextEdit without the bouncy, please let me know and I'll build you a copy.


I have downloaded a copy of the WebKit source. I with I had time to make a Safari plugin (or version of Safari) that fixed the window tab order and disabled elasticity and auto quitting.


EDIT: OH, Fofer, this is the compiled version of the code that was sent to me a week or so ago. Much thanks to Thomas Clement for this.

This thread has been closed by the system or the community team. You may vote for any posts you find helpful, or search the Community for additional answers.

iOS like "rubber band" scrolling in Lion - Safari

Welcome to Apple Support Community
A forum where Apple customers help each other with their products. Get started with your Apple Account.