| Index: chrome/browser/browser.cc
|
| ===================================================================
|
| --- chrome/browser/browser.cc (revision 9882)
|
| +++ chrome/browser/browser.cc (working copy)
|
| @@ -711,6 +711,12 @@
|
| browser->window()->Show();
|
| }
|
|
|
| +void Browser::ToggleFullscreenMode() {
|
| + UserMetrics::RecordAction(L"ToggleFullscreen", profile_);
|
| + window_->SetFullscreen(!window_->IsFullscreen());
|
| + UpdateCommandsForFullscreenMode(window_->IsFullscreen());
|
| +}
|
| +
|
| void Browser::Exit() {
|
| UserMetrics::RecordAction(L"Exit", profile_);
|
| BrowserList::CloseAllBrowsers(true);
|
| @@ -1103,6 +1109,7 @@
|
| case IDC_DUPLICATE_TAB: DuplicateTab(); break;
|
| case IDC_RESTORE_TAB: RestoreTab(); break;
|
| case IDC_SHOW_AS_TAB: ConvertPopupToTabbedBrowser(); break;
|
| + case IDC_FULLSCREEN: ToggleFullscreenMode(); break;
|
| case IDC_EXIT: Exit(); break;
|
|
|
| // Page-related commands
|
| @@ -1933,6 +1940,7 @@
|
| command_updater_.UpdateCommandEnabled(IDC_NEW_TAB, true);
|
| command_updater_.UpdateCommandEnabled(IDC_CLOSE_TAB, true);
|
| command_updater_.UpdateCommandEnabled(IDC_DUPLICATE_TAB, true);
|
| + command_updater_.UpdateCommandEnabled(IDC_FULLSCREEN, true);
|
| command_updater_.UpdateCommandEnabled(IDC_EXIT, true);
|
|
|
| // Page-related commands
|
| @@ -1997,10 +2005,8 @@
|
|
|
| // Navigation commands
|
| command_updater_.UpdateCommandEnabled(IDC_HOME, normal_window);
|
| - command_updater_.UpdateCommandEnabled(IDC_OPEN_CURRENT_URL, normal_window);
|
|
|
| // Window management commands
|
| - command_updater_.UpdateCommandEnabled(IDC_PROFILE_MENU, normal_window);
|
| command_updater_.UpdateCommandEnabled(IDC_SELECT_NEXT_TAB, normal_window);
|
| command_updater_.UpdateCommandEnabled(IDC_SELECT_PREVIOUS_TAB,
|
| normal_window);
|
| @@ -2015,33 +2021,10 @@
|
| command_updater_.UpdateCommandEnabled(IDC_SELECT_LAST_TAB, normal_window);
|
| command_updater_.UpdateCommandEnabled(IDC_RESTORE_TAB,
|
| normal_window && !profile_->IsOffTheRecord());
|
| - command_updater_.UpdateCommandEnabled(IDC_SHOW_AS_TAB,
|
| - (type() == TYPE_POPUP));
|
| + }
|
|
|
| - // Focus various bits of UI
|
| - command_updater_.UpdateCommandEnabled(IDC_FOCUS_TOOLBAR, normal_window);
|
| - command_updater_.UpdateCommandEnabled(IDC_FOCUS_LOCATION, normal_window);
|
| - command_updater_.UpdateCommandEnabled(IDC_FOCUS_SEARCH, normal_window);
|
| -
|
| - // Show various bits of UI
|
| - command_updater_.UpdateCommandEnabled(IDC_DEVELOPER_MENU, normal_window);
|
| -#if defined(OS_WIN)
|
| - command_updater_.UpdateCommandEnabled(IDC_DEBUGGER,
|
| - // The debugger doesn't work in single process mode.
|
| - normal_window && !RenderProcessHost::run_renderer_in_process());
|
| -#endif
|
| - command_updater_.UpdateCommandEnabled(IDC_NEW_PROFILE, normal_window);
|
| - command_updater_.UpdateCommandEnabled(IDC_REPORT_BUG, normal_window);
|
| - command_updater_.UpdateCommandEnabled(IDC_SHOW_BOOKMARK_BAR, normal_window);
|
| - command_updater_.UpdateCommandEnabled(IDC_CLEAR_BROWSING_DATA,
|
| - normal_window);
|
| - command_updater_.UpdateCommandEnabled(IDC_IMPORT_SETTINGS, normal_window);
|
| - command_updater_.UpdateCommandEnabled(IDC_OPTIONS, normal_window);
|
| - command_updater_.UpdateCommandEnabled(IDC_EDIT_SEARCH_ENGINES,
|
| - normal_window);
|
| - command_updater_.UpdateCommandEnabled(IDC_VIEW_PASSWORDS, normal_window);
|
| - command_updater_.UpdateCommandEnabled(IDC_ABOUT, normal_window);
|
| - }
|
| + // Initialize other commands whose state changes based on fullscreen mode.
|
| + UpdateCommandsForFullscreenMode(false);
|
| }
|
|
|
| void Browser::UpdateCommandsForTabState() {
|
| @@ -2098,6 +2081,40 @@
|
| }
|
| }
|
|
|
| +void Browser::UpdateCommandsForFullscreenMode(bool is_fullscreen) {
|
| + const bool show_main_ui = (type() == TYPE_NORMAL) && !is_fullscreen;
|
| +
|
| + // Navigation commands
|
| + command_updater_.UpdateCommandEnabled(IDC_OPEN_CURRENT_URL, show_main_ui);
|
| +
|
| + // Window management commands
|
| + command_updater_.UpdateCommandEnabled(IDC_PROFILE_MENU, show_main_ui);
|
| + command_updater_.UpdateCommandEnabled(IDC_SHOW_AS_TAB,
|
| + (type() == TYPE_POPUP) && !is_fullscreen);
|
| +
|
| + // Focus various bits of UI
|
| + command_updater_.UpdateCommandEnabled(IDC_FOCUS_TOOLBAR, show_main_ui);
|
| + command_updater_.UpdateCommandEnabled(IDC_FOCUS_LOCATION, show_main_ui);
|
| + command_updater_.UpdateCommandEnabled(IDC_FOCUS_SEARCH, show_main_ui);
|
| +
|
| + // Show various bits of UI
|
| + command_updater_.UpdateCommandEnabled(IDC_DEVELOPER_MENU, show_main_ui);
|
| +#if defined(OS_WIN)
|
| + command_updater_.UpdateCommandEnabled(IDC_DEBUGGER,
|
| + // The debugger doesn't work in single process mode.
|
| + show_main_ui && !RenderProcessHost::run_renderer_in_process());
|
| +#endif
|
| + command_updater_.UpdateCommandEnabled(IDC_NEW_PROFILE, show_main_ui);
|
| + command_updater_.UpdateCommandEnabled(IDC_REPORT_BUG, show_main_ui);
|
| + command_updater_.UpdateCommandEnabled(IDC_SHOW_BOOKMARK_BAR, show_main_ui);
|
| + command_updater_.UpdateCommandEnabled(IDC_CLEAR_BROWSING_DATA, show_main_ui);
|
| + command_updater_.UpdateCommandEnabled(IDC_IMPORT_SETTINGS, show_main_ui);
|
| + command_updater_.UpdateCommandEnabled(IDC_OPTIONS, show_main_ui);
|
| + command_updater_.UpdateCommandEnabled(IDC_EDIT_SEARCH_ENGINES, show_main_ui);
|
| + command_updater_.UpdateCommandEnabled(IDC_VIEW_PASSWORDS, show_main_ui);
|
| + command_updater_.UpdateCommandEnabled(IDC_ABOUT, show_main_ui);
|
| +}
|
| +
|
| void Browser::UpdateStopGoState(bool is_loading) {
|
| window_->UpdateStopGoState(is_loading);
|
| command_updater_.UpdateCommandEnabled(IDC_GO, !is_loading);
|
|
|