Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4160)

Unified Diff: chrome/browser/ui/cocoa/browser_window_controller.mm

Issue 7355016: Lion: Need to use new full-screen API (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Created 9 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/cocoa/browser_window_controller.mm
diff --git a/chrome/browser/ui/cocoa/browser_window_controller.mm b/chrome/browser/ui/cocoa/browser_window_controller.mm
index 380b36a43a41b53968fcb1007a5e847626cd374f..bac98473da88ab39c928ec0d7a53446fddcd1ca5 100644
--- a/chrome/browser/ui/cocoa/browser_window_controller.mm
+++ b/chrome/browser/ui/cocoa/browser_window_controller.mm
@@ -154,6 +154,19 @@
// Provide the forward-declarations of new 10.7 SDK symbols so they can be
Mark Mentovai 2011/07/13 14:46:04 10.6, not 10.7.
// called when building with the 10.5 SDK.
+#if !defined(MAC_OS_X_VERSION_10_6) || \
+ MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_6
+
+typedef NSUInteger NSApplicationPresentationOptions;
+
+@interface NSApplication (LionSDKDeclarations)
Mark Mentovai 2011/07/13 14:46:04 SnowLeopard, not Lion.
+- (NSApplicationPresentationOptions)currentSystemPresentationOptions;
+@end
+
+#endif // MAC_OS_X_VERSION_10_6
+
+// Provide the forward-declarations of new 10.7 SDK symbols so they can be
+// called when building with the 10.5 SDK.
#if !defined(MAC_OS_X_VERSION_10_7) || \
MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_7
@@ -161,6 +174,15 @@
- (void)setRestorable:(BOOL)flag;
@end
+enum {
+ NSWindowCollectionBehaviorFullScreenPrimary = 1 << 7,
+ NSWindowCollectionBehaviorFullScreenAuxiliary = 1 << 8
+};
+
+enum {
+ NSApplicationPresentationFullScreen = 1 << 10
+};
+
#endif // MAC_OS_X_VERSION_10_7
@@ -364,7 +386,9 @@
if ([self hasToolbar]) // Do not create the buttons in popups.
[toolbarController_ createBrowserActionButtons];
- [self setUpOSFullScreenButton];
+ NSWindowCollectionBehavior behavior = [[self window] collectionBehavior];
+ behavior |= NSWindowCollectionBehaviorFullScreenPrimary;
+ [[self window] setCollectionBehavior:behavior];
// We are done initializing now.
initializing_ = NO;
@@ -1882,6 +1906,32 @@ willAnimateFromState:(bookmarks::VisualState)oldState
@end // @implementation BrowserWindowController
+@implementation BrowserWindowController(LionFullScreen)
+
+- (NSSize)window:(NSWindow *)window
+ willUseFullScreenContentSize:(NSSize)proposedSize {
+ [window setFrame:NSMakeRect(0, 0, proposedSize.width, proposedSize.height)
+ display:YES
+ animate:NO];
+ [self layoutSubviews];
+ return proposedSize;
+}
+
+- (void)windowDidEnterFullScreen:(NSNotification *)notification {
+ [self layoutSubviews];
+}
+
+- (void)windowDidExitFullScreen:(NSNotification *)notification {
+ [self layoutSubviews];
+}
+
+- (BOOL)isLionFullScreen {
+ return !!([NSApp currentSystemPresentationOptions] &
+ NSApplicationPresentationFullScreen);
+}
+
+@end // @implementation BrowserWindowController(LionFullScreen)
+
@implementation BrowserWindowController(Fullscreen)
@@ -2036,10 +2086,6 @@ willAnimateFromState:(bookmarks::VisualState)oldState
// We're done moving focus, so re-enable bar visibility changes.
[self enableBarVisibilityUpdates];
- // This needs to be done when leaving full-screen mode to ensure that the
- // button's action is set properly.
- [self setUpOSFullScreenButton];
-
// Fade back in.
if (didFadeOut) {
CGDisplayFade(token, kFadeDurationSeconds / 2, kCGDisplayBlendSolidColor,

Powered by Google App Engine
This is Rietveld 408576698