Index: chrome/browser/ui/browser_command_controller.cc |
diff --git a/chrome/browser/ui/browser_command_controller.cc b/chrome/browser/ui/browser_command_controller.cc |
index 2d4c48ca45518fc8f523fdad450afc9614fbd88a..2cd2084174f72d966131b68ca7d996a0d7344fee 100644 |
--- a/chrome/browser/ui/browser_command_controller.cc |
+++ b/chrome/browser/ui/browser_command_controller.cc |
@@ -850,9 +850,6 @@ void BrowserCommandController::InitCommandState() { |
command_updater_.UpdateCommandEnabled(IDC_HOME, normal_window); |
// Window management commands |
- // TODO(rohitrao): Disable fullscreen on non-Lion? |
- command_updater_.UpdateCommandEnabled(IDC_FULLSCREEN, |
- !(browser_->is_type_panel() && browser_->is_app())); |
command_updater_.UpdateCommandEnabled(IDC_SELECT_NEXT_TAB, normal_window); |
command_updater_.UpdateCommandEnabled(IDC_SELECT_PREVIOUS_TAB, |
normal_window); |
@@ -875,11 +872,7 @@ void BrowserCommandController::InitCommandState() { |
IDC_WIN8_DESKTOP_RESTART : IDC_WIN8_METRO_RESTART; |
command_updater_.UpdateCommandEnabled(restart_mode, normal_window); |
#endif |
-#if defined(OS_MACOSX) |
command_updater_.UpdateCommandEnabled(IDC_TABPOSE, normal_window); |
- command_updater_.UpdateCommandEnabled(IDC_PRESENTATION_MODE, |
- !(browser_->is_type_panel() && browser_->is_app())); |
-#endif |
// Find-in-page |
command_updater_.UpdateCommandEnabled(IDC_FIND, !browser_->is_devtools()); |
@@ -1094,9 +1087,20 @@ void BrowserCommandController::UpdateCommandsForFullscreenMode( |
#endif |
// Disable explicit fullscreen toggling when in metro snap mode. |
- command_updater_.UpdateCommandEnabled( |
- IDC_FULLSCREEN, |
- fullscreen_mode != FULLSCREEN_METRO_SNAP); |
+ bool fullscreen_enabled = !browser_->is_type_panel() && |
+ !browser_->is_app() && |
+ fullscreen_mode != FULLSCREEN_METRO_SNAP; |
+#if defined(OS_MACOSX) |
+ // The Mac implementation doesn't support switching to fullscreen while |
+ // a tab modal dialog is displayed. |
+ int tabIndex = browser_->tab_strip_model()->IndexOfFirstBlockedTab(); |
+ bool has_blocked_tab = tabIndex != browser_->tab_strip_model()->count(); |
+ fullscreen_enabled = fullscreen_enabled && !has_blocked_tab; |
Robert Sesek
2012/11/05 21:17:32
Could use &= here
sail
2012/11/06 22:00:43
Done.
|
+#endif |
+ |
+ command_updater_.UpdateCommandEnabled(IDC_FULLSCREEN, fullscreen_enabled); |
+ command_updater_.UpdateCommandEnabled(IDC_PRESENTATION_MODE, |
+ fullscreen_enabled); |
UpdateCommandsForBookmarkBar(); |
UpdateCommandsForMultipleProfiles(); |