Index: chrome/browser/ui/ash/chrome_shell_delegate.cc |
diff --git a/chrome/browser/ui/ash/chrome_shell_delegate.cc b/chrome/browser/ui/ash/chrome_shell_delegate.cc |
index 5b7cecccff622e619591bd6fb5cb02acea749a9d..66d5a494e9c37da28b60008d5901849e5f7a7c5a 100644 |
--- a/chrome/browser/ui/ash/chrome_shell_delegate.cc |
+++ b/chrome/browser/ui/ash/chrome_shell_delegate.cc |
@@ -159,12 +159,26 @@ void ChromeShellDelegate::ToggleFullscreen() { |
bool is_fullscreen = ash::wm::IsWindowFullscreen(window); |
// Windows which cannot be maximized should not be fullscreened. |
- if (is_fullscreen && !ash::wm::CanMaximizeWindow(window)) |
+ if (!is_fullscreen && !ash::wm::CanMaximizeWindow(window)) |
return; |
Browser* browser = chrome::FindBrowserWithWindow(window); |
if (browser) { |
- chrome::ToggleFullscreenMode(browser); |
+#if defined(OS_WIN) |
+ if (browser->host_desktop_type() == chrome::HOST_DESKTOP_TYPE_NATIVE) { |
+ chrome::ToggleFullscreenMode(browser); |
+ return; |
+ } |
+#endif // OS_WIN |
+ if (browser->is_app() && browser->app_type() != Browser::APP_TYPE_CHILD) { |
+ // AppNonClientFrameViewAsh shows only the window controls and no other |
+ // window decorations which is pretty close to fullscreen. Put v1 apps |
+ // into maximized mode instead of fullscreen to avoid showing the ugly |
+ // fullscreen exit bubble. |
+ ash::wm::ToggleMaximizedWindow(window); |
+ } else { |
+ chrome::ToggleFullscreenMode(browser); |
+ } |
return; |
} |
@@ -176,7 +190,12 @@ void ChromeShellDelegate::ToggleFullscreen() { |
shell_window->Restore(); |
else |
shell_window->Fullscreen(); |
+ return; |
} |
+ |
+ // |window| may belong to a dialog such as the task manager. Toggle its |
+ // maximized state. |
+ ash::wm::ToggleMaximizedWindow(window); |
} |
void ChromeShellDelegate::ToggleMaximized() { |
@@ -185,13 +204,6 @@ void ChromeShellDelegate::ToggleMaximized() { |
if (!window) |
return; |
- // TODO(pkotwicz): If immersive mode replaces fullscreen, bind fullscreen to |
- // F4 and find a different key binding for maximize. |
- if (ImmersiveFullscreenConfiguration::UseImmersiveFullscreen()) { |
- ToggleFullscreen(); |
- return; |
- } |
- |
// Get out of fullscreen when in fullscreen mode. |
if (ash::wm::IsWindowFullscreen(window)) { |
ToggleFullscreen(); |