Currently Being ModeratedApr 28, 2012 1:36 PM (in response to Alex Zavatone)
A shot in the dark here. Since this didn't occur in Snow Leopard, try deleting the cache associated with Safari.
Open the Finder. From the menu bar click Go > Go to Folder
Type this exactly as you see it here: ~/Library/Caches/com.apple.Safari/Cache.db
Move the Cache.db file to the Trash.
Quit then relaunch Safari to test.
Currently Being ModeratedApr 28, 2012 1:54 PM (in response to Carolyn Samit)
Thanks Carolyn, but this is a result of how Apple rebuilt their code. 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
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.
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.
Currently Being ModeratedApr 28, 2012 3:08 PM (in response to Carolyn Samit)
Well, no, I didn't. That can't work.
All windows under Lion that scroll have this problem. Check out TextEdit and if you have a Magic Mouse, try scrolling with your middle finder in the middle of the mouse. When you get to the end of a scroll region, you can scroll past it and the content of the window ends up bouncing back. The code defines this behaviour. Safari is by far the worst, but I can't use any app in Lion if it does this. It's too annoying and distracting.
All that needs to be done is to identify the location this variable is defined or enumerated and change it to the value that says never ever do this.
Then hopefully, I can put it in a pList file within the preferences for Safari. Safari is based on WebKit. I'll download the source code for WebKit and should as least find the part of code where this happens. I still don't know how to do that, but if I have time, I'll get this solved. It's time that I don't have though.