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

Unified Diff: base/mac/mac_util.mm

Issue 12052012: Switch to Cocoa APIs for fullscreen. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: cleanup Created 7 years, 11 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
« no previous file with comments | « no previous file | chrome/browser/fullscreen.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/mac/mac_util.mm
diff --git a/base/mac/mac_util.mm b/base/mac/mac_util.mm
index 8870dc0ac23f4b4816ddd7bc9dea3dbb07e70f4c..a0fee532435058b4e64ff52b061bd2a3870d7d3e 100644
--- a/base/mac/mac_util.mm
+++ b/base/mac/mac_util.mm
@@ -31,17 +31,16 @@ namespace {
// The current count of outstanding requests for full screen mode from browser
// windows, plugins, etc.
-int g_full_screen_requests[kNumFullScreenModes] = { 0, 0, 0};
+int g_full_screen_requests[kNumFullScreenModes] = { 0 };
-// Sets the appropriate SystemUIMode based on the current full screen requests.
-// Since only one SystemUIMode can be active at a given time, full screen
-// requests are ordered by priority. If there are no outstanding full screen
-// requests, reverts to normal mode. If the correct SystemUIMode is already
-// set, does nothing.
+// Sets the appropriate application presentation option based on the current
+// full screen requests. Since only one presentation option can be active at a
+// given time, full screen requests are ordered by priority. If there are no
+// outstanding full screen requests, reverts to normal mode. If the correct
+// presentation option is already set, does nothing.
void SetUIMode() {
- // Get the current UI mode.
- SystemUIMode current_mode;
- GetSystemUIMode(&current_mode, NULL);
+ NSApplicationPresentationOptions current_options =
+ [NSApp presentationOptions];
// Determine which mode should be active, based on which requests are
// currently outstanding. More permissive requests take precedence. For
@@ -49,19 +48,20 @@ void SetUIMode() {
// windows request |kFullScreenModeHideDock| when the fullscreen overlay is
// down. Precedence goes to plugins in this case, so AutoHideAll wins over
// HideDock.
- SystemUIMode desired_mode = kUIModeNormal;
- SystemUIOptions desired_options = 0;
+ NSApplicationPresentationOptions desired_options =
+ NSApplicationPresentationDefault;
if (g_full_screen_requests[kFullScreenModeAutoHideAll] > 0) {
- desired_mode = kUIModeAllHidden;
- desired_options = kUIOptionAutoShowMenuBar;
+ desired_options = NSApplicationPresentationHideDock |
+ NSApplicationPresentationAutoHideMenuBar;
} else if (g_full_screen_requests[kFullScreenModeHideDock] > 0) {
- desired_mode = kUIModeContentHidden;
+ desired_options = NSApplicationPresentationHideDock;
} else if (g_full_screen_requests[kFullScreenModeHideAll] > 0) {
- desired_mode = kUIModeAllHidden;
+ desired_options = NSApplicationPresentationHideDock |
+ NSApplicationPresentationHideMenuBar;
}
- if (current_mode != desired_mode)
- SetSystemUIMode(desired_mode, desired_options);
+ if (current_options != desired_options)
+ [NSApp setPresentationOptions:desired_options];
}
// Looks into Shared File Lists corresponding to Login Items for the item
« no previous file with comments | « no previous file | chrome/browser/fullscreen.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698