summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJay Freeman (saurik) <saurik@saurik.com>2011-03-24 09:44:57 -0700
committerJay Freeman (saurik) <saurik@saurik.com>2011-03-24 09:44:57 -0700
commit3cf380678a801294f8fae45b4594682dce224165 (patch)
tree04d1b99b14548d5351021eb78800257e6d0d609f
parentb1497b56219ae6773df40864729329f8b17f33fa (diff)
Correctly handle layout updates of background tabs.
-rw-r--r--CyteKit/WebView.mm8
-rw-r--r--CyteKit/WebViewController.mm3
-rw-r--r--iPhonePrivate.h5
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;