]> git.saurik.com Git - cydia.git/blobdiff - CyteKit/WebView.mm
Move cyte diversions and user agents into CyteKit.
[cydia.git] / CyteKit / WebView.mm
index 38f6a4f92f548c37b8d9c64be730531bbd5ce480..9e0cbea80a9846849a5227de04aca2b2081dbd5c 100644 (file)
@@ -90,7 +90,8 @@
 @end
 // }}}
 
-@implementation CyteWebView : UIWebView
+@implementation CyteWebView : UIWebView {
+}
 
 #if ShowInternals
 #include "CyteKit/UCInternal.h"
@@ -416,3 +417,29 @@ __attribute__((__constructor__)) static void $() {
         class_addMethod($UIWebViewWebViewDelegate, @selector(_clearUIWebView), (IMP) &$UIWebViewWebViewDelegate$_clearUIWebView, "v8@0:4");
     }
 }
+
+@implementation UIWebDocumentView (Cydia)
+
+- (void) _setScrollerOffset:(CGPoint)offset {
+    UIScroller *scroller([self _scroller]);
+
+    CGSize size([scroller contentSize]);
+    CGSize bounds([scroller bounds].size);
+
+    CGPoint max;
+    max.x = size.width - bounds.width;
+    max.y = size.height - bounds.height;
+
+    // wtf Apple?!
+    if (max.x < 0)
+        max.x = 0;
+    if (max.y < 0)
+        max.y = 0;
+
+    offset.x = offset.x < 0 ? 0 : offset.x > max.x ? max.x : offset.x;
+    offset.y = offset.y < 0 ? 0 : offset.y > max.y ? max.y : offset.y;
+
+    [scroller setOffset:offset];
+}
+
+@end