]> git.saurik.com Git - cydia.git/blobdiff - CyteKit/WebView.mm
Mostly make Cydia compile using the iOS Simulator.
[cydia.git] / CyteKit / WebView.mm
index df37711377c4961c2cc7cd4ee8476ffe8303975e..9e0cbea80a9846849a5227de04aca2b2081dbd5c 100644 (file)
@@ -1,5 +1,5 @@
 /* Cydia - iPhone UIKit Front-End for Debian APT
- * Copyright (C) 2008-2014  Jay Freeman (saurik)
+ * Copyright (C) 2008-2015  Jay Freeman (saurik)
 */
 
 /* GNU General Public License, Version 3 {{{ */
 **/
 /* }}} */
 
+#include "CyteKit/UCPlatform.h"
+
 #include "CyteKit/dispatchEvent.h"
 #include "CyteKit/WebView.h"
 
-#include <CydiaSubstrate/CydiaSubstrate.h>
+#include "Substrate.hpp"
 
 #include "iPhonePrivate.h"
 
@@ -88,7 +90,8 @@
 @end
 // }}}
 
-@implementation CyteWebView : UIWebView
+@implementation CyteWebView : UIWebView {
+}
 
 #if ShowInternals
 #include "CyteKit/UCInternal.h"
@@ -414,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