Disable view source for Developer Tools.
[chromium-blink-merge.git] / chrome / browser / fullscreen_mac.mm
blob2d283603fee2db9327fd03ae4e1438819daeb6f9
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #import "chrome/browser/fullscreen.h"
7 #import <Cocoa/Cocoa.h>
9 #include "base/command_line.h"
10 #include "base/mac/mac_util.h"
11 #include "chrome/common/chrome_switches.h"
13 // Replicate specific 10.7 SDK declarations for building with prior SDKs.
14 #if !defined(MAC_OS_X_VERSION_10_7) || \
15     MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_7
17 enum {
18   NSApplicationPresentationFullScreen = 1 << 10
21 #endif  // MAC_OS_X_VERSION_10_7
23 bool IsFullScreenMode() {
24   // Check if the main display has been captured (by games in particular).
25   if (CGDisplayIsCaptured(CGMainDisplayID()))
26     return true;
28   NSApplicationPresentationOptions options =
29       [NSApp currentSystemPresentationOptions];
31   bool dock_hidden = (options & NSApplicationPresentationHideDock) ||
32                      (options & NSApplicationPresentationAutoHideDock);
34   bool menu_hidden = (options & NSApplicationPresentationHideMenuBar) ||
35                      (options & NSApplicationPresentationAutoHideMenuBar);
37   // If both dock and menu bar are hidden, that is the equivalent of the Carbon
38   // SystemUIMode (or Info.plist's LSUIPresentationMode) kUIModeAllHidden.
39   if (dock_hidden && menu_hidden)
40     return true;
42   if (options & NSApplicationPresentationFullScreen)
43     return true;
45   return false;
48 namespace chrome {
49 namespace mac {
51 bool SupportsSystemFullscreen() {
52   const CommandLine* command_line = CommandLine::ForCurrentProcess();
53   if (command_line->HasSwitch(switches::kDisableSystemFullscreenForTesting))
54     return false;
56   return base::mac::IsOSLionOrLater();
59 }  // namespace mac
60 }  // namespace chrome