diff options
author | Jay Freeman (saurik) <saurik@saurik.com> | 2010-11-05 09:32:48 -0700 |
---|---|---|
committer | Jay Freeman (saurik) <saurik@saurik.com> | 2010-11-05 09:32:48 -0700 |
commit | 9c1605e2d99b216c21dbc6134dae0bc3bb02e38d (patch) | |
tree | 36d3e644024bdf012059d576aeba791a16d320d7 /UICaboodle/BrowserView.mm | |
parent | 1671fa4e57bc813f7e0b4423662961d9e55d7d6e (diff) |
Downgrade support for -[UIScrollView setDecelerationRate].
Diffstat (limited to 'UICaboodle/BrowserView.mm')
-rw-r--r-- | UICaboodle/BrowserView.mm | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/UICaboodle/BrowserView.mm b/UICaboodle/BrowserView.mm index 8b361f5..90a584f 100644 --- a/UICaboodle/BrowserView.mm +++ b/UICaboodle/BrowserView.mm @@ -36,6 +36,8 @@ static inline void CYRelease(Type_ &value) { } } +float CYScrollViewDecelerationRateNormal; + @interface WebView (Apple) - (void) _setLayoutInterval:(float)interval; @end @@ -315,6 +317,11 @@ enum CYWebPolicyDecision { + (void) _initialize { [WebPreferences _setInitialDefaultTextEncodingToSystemEncoding]; + + if (float *_UIScrollViewDecelerationRateNormal = reinterpret_cast<float *>(dlsym(RTLD_DEFAULT, "UIScrollViewDecelerationRateNormal"))) + CYScrollViewDecelerationRateNormal = *_UIScrollViewDecelerationRateNormal; + else // XXX: this actually might be fast on some older systems: we should look into this + CYScrollViewDecelerationRateNormal = 0.998; } - (void) dealloc { @@ -807,7 +814,7 @@ enum CYWebPolicyDecision { scroller_ = [webview_ _scrollView]; [scroller_ setDirectionalLockEnabled:YES]; - [scroller_ setDecelerationRate:UIScrollViewDecelerationRateNormal]; + [scroller_ setDecelerationRate:CYScrollViewDecelerationRateNormal]; [scroller_ setDelaysContentTouches:NO]; [scroller_ setCanCancelContentTouches:YES]; @@ -816,7 +823,8 @@ enum CYWebPolicyDecision { scroller_ = (UIScrollView *) scroller; [scroller setDirectionalScrolling:YES]; - [scroller setScrollDecelerationFactor:UIScrollViewDecelerationRateNormal]; /* 0.989324 */ + // XXX: we might be better off /not/ setting this on older systems + [scroller setScrollDecelerationFactor:CYScrollViewDecelerationRateNormal]; /* 0.989324 */ [scroller setScrollHysteresis:0]; /* 8 */ [scroller setThumbDetectionEnabled:NO]; |