diff options
author | Jay Freeman (saurik) <saurik@saurik.com> | 2011-03-24 09:44:57 -0700 |
---|---|---|
committer | Jay Freeman (saurik) <saurik@saurik.com> | 2011-03-24 09:44:57 -0700 |
commit | 3cf380678a801294f8fae45b4594682dce224165 (patch) | |
tree | 04d1b99b14548d5351021eb78800257e6d0d609f | |
parent | b1497b56219ae6773df40864729329f8b17f33fa (diff) |
Correctly handle layout updates of background tabs.
-rw-r--r-- | CyteKit/WebView.mm | 8 | ||||
-rw-r--r-- | CyteKit/WebViewController.mm | 3 | ||||
-rw-r--r-- | iPhonePrivate.h | 5 |
3 files changed, 16 insertions, 0 deletions
diff --git a/CyteKit/WebView.mm b/CyteKit/WebView.mm index a71e5c2..09c9c40 100644 --- a/CyteKit/WebView.mm +++ b/CyteKit/WebView.mm @@ -369,6 +369,14 @@ static void $UIWebViewWebViewDelegate$webViewClose$(UIWebViewWebViewDelegate *se else return nil; } +- (void) setNeedsLayout { + [super setNeedsLayout]; + + WebFrame *frame([[[self _documentView] webView] mainFrame]); + if ([frame respondsToSelector:@selector(setNeedsLayout)]) + [frame setNeedsLayout]; +} + @end static void $UIWebViewWebViewDelegate$_clearUIWebView(UIWebViewWebViewDelegate *self, SEL sel) { diff --git a/CyteKit/WebViewController.mm b/CyteKit/WebViewController.mm index 36c8177..4d4d250 100644 --- a/CyteKit/WebViewController.mm +++ b/CyteKit/WebViewController.mm @@ -1060,6 +1060,9 @@ float CYScrollViewDecelerationRateNormal; if ([self hidesNavigationBar]) [self _setHidesNavigationBar:YES animated:animated]; + // XXX: why isn't this evern called automatically? + [[self webView] setNeedsLayout]; + [self dispatchEvent:@"CydiaViewWillAppear"]; [super viewWillAppear:animated]; } diff --git a/iPhonePrivate.h b/iPhonePrivate.h index fc85776..98f86b4 100644 --- a/iPhonePrivate.h +++ b/iPhonePrivate.h @@ -6,6 +6,7 @@ #include <UIKit/UIKit.h> // }}} // #import <*> {{{ +#import <WebKit/WebFrame.h> #import <WebKit/WebPreferences.h> // }}} // typedef enum {*} *; {{{ @@ -341,6 +342,10 @@ typedef enum { @end // }}} // @interface Web* (*) {{{ +@interface WebFrame (Apple) +- (void) setNeedsLayout; +@end + @interface WebPreferences (Apple) + (void) _setInitialDefaultTextEncodingToSystemEncoding; - (void) _setLayoutInterval:(NSInteger)interval; |