summaryrefslogtreecommitdiffstats
path: root/chrome/browser/ui/cocoa/framed_browser_window.mm
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/ui/cocoa/framed_browser_window.mm')
-rw-r--r--chrome/browser/ui/cocoa/framed_browser_window.mm27
1 files changed, 27 insertions, 0 deletions
diff --git a/chrome/browser/ui/cocoa/framed_browser_window.mm b/chrome/browser/ui/cocoa/framed_browser_window.mm
index e15481a..712959a 100644
--- a/chrome/browser/ui/cocoa/framed_browser_window.mm
+++ b/chrome/browser/ui/cocoa/framed_browser_window.mm
@@ -13,6 +13,18 @@
#import "chrome/browser/renderer_host/render_widget_host_view_mac.h"
#include "chrome/browser/themes/theme_service.h"
+// 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
+
+@interface NSWindow (LionSDKDeclarations)
+- (void)toggleFullScreen:(id)sender;
+@end
+
+#endif // MAC_OS_X_VERSION_10_7
+
+
// Implementer's note: Moving the window controls is tricky. When altering the
// code, ensure that:
// - accessibility hit testing works
@@ -273,4 +285,19 @@ const CGFloat kWindowGradientHeight = 24.0;
return [super constrainFrameRect:frame toScreen:screen];
}
+// This method is overridden in order to send the toggle fullscreen message
+// through the cross-platform browser framework before going fullscreen. The
+// message will eventually come back as a call to |-toggleSystemFullScreen|,
+// which in turn calls AppKit's |NSWindow -toggleFullScreen:|.
+- (void)toggleFullScreen:(id)sender {
+ id delegate = [self delegate];
+ if ([delegate respondsToSelector:@selector(handleLionToggleFullscreen)])
+ [delegate handleLionToggleFullscreen];
+}
+
+- (void)toggleSystemFullScreen {
+ if ([super respondsToSelector:@selector(toggleFullScreen:)])
+ [super toggleFullScreen:nil];
+}
+
@end