diff options
-rw-r--r-- | CyteKit/dispatchEvent.mm | 17 | ||||
-rw-r--r-- | iPhonePrivate.h | 9 |
2 files changed, 26 insertions, 0 deletions
diff --git a/CyteKit/dispatchEvent.mm b/CyteKit/dispatchEvent.mm index 277d89b..f0e79ad 100644 --- a/CyteKit/dispatchEvent.mm +++ b/CyteKit/dispatchEvent.mm @@ -74,3 +74,20 @@ } @end + +MSHook(void, UIWebBrowserView$_webTouchEventsRecognized$, UIWebBrowserView *self, SEL _cmd, UIWebTouchEventsGestureRecognizer *recognizer) { + _UIWebBrowserView$_webTouchEventsRecognized$(self, _cmd, recognizer); + + if ([recognizer type] == 8) + //if ([[recognizer _typeDescription] isEqualToString:@"WebEventTouchEnd"]) + [self dispatchEvent:@"CydiaTouchEnd"]; +} + +__attribute__((__constructor__)) static void $() { + if (Class $UIWebBrowserView = objc_getClass("UIWebBrowserView")) { + if (Method method = class_getInstanceMethod($UIWebBrowserView, @selector(_webTouchEventsRecognized:))) { + _UIWebBrowserView$_webTouchEventsRecognized$ = reinterpret_cast<void (*)(UIWebBrowserView *, SEL, id)>(method_getImplementation(method)); + method_setImplementation(method, reinterpret_cast<IMP>(&$UIWebBrowserView$_webTouchEventsRecognized$)); + } + } +} diff --git a/iPhonePrivate.h b/iPhonePrivate.h index e9df918..b5a5959 100644 --- a/iPhonePrivate.h +++ b/iPhonePrivate.h @@ -149,6 +149,15 @@ typedef enum { + (WebDefaultUIKitDelegate *) sharedUIKitDelegate; @end // }}} +// @interface UIWeb* : * {{{ +@interface UIWebBrowserView : UIWebDocumentView +@end + +@interface UIWebTouchEventsGestureRecognizer : UIGestureRecognizer +- (int) type; +- (NSString *) _typeDescription; +@end +// }}} // @interface NS* (*) {{{ @interface NSMutableURLRequest (Apple) |