Index: chrome/browser/ui/fullscreen_controller.cc |
diff --git a/chrome/browser/ui/fullscreen_controller.cc b/chrome/browser/ui/fullscreen_controller.cc |
index b87532864a24622f99ea67f8d293d9fec6f61530..d4039b73814a135a7601fdcd130b8eea8558a126 100644 |
--- a/chrome/browser/ui/fullscreen_controller.cc |
+++ b/chrome/browser/ui/fullscreen_controller.cc |
@@ -130,6 +130,15 @@ void FullscreenController::ToggleFullscreenModeForTab(WebContents* web_contents, |
if (web_contents != browser_->GetActiveWebContents()) |
return; |
+#if defined(OS_WIN) |
+ // For now, avoid breaking when initiating full screen tab mode while in |
+ // a metro snap. |
+ // TODO(robertshield): Find a way to reconcile tab-initiated fullscreen |
+ // modes with metro snap. |
+ if (IsInMetroSnapMode()) |
+ return; |
+#endif |
+ |
bool in_browser_or_tab_fullscreen_mode; |
#if defined(OS_MACOSX) |
in_browser_or_tab_fullscreen_mode = window_->InPresentationMode(); |
@@ -178,6 +187,7 @@ void FullscreenController::ToggleFullscreenModeForTab(WebContents* web_contents, |
#if defined(OS_WIN) |
void FullscreenController::SetMetroSnapMode(bool enable) { |
+ toggled_into_fullscreen_ = false; |
window_->SetMetroSnapMode(enable); |
} |
#endif |
@@ -492,6 +502,12 @@ void FullscreenController::TogglePresentationModeInternal(bool for_tab) { |
// TODO(koz): Change |for_tab| to an enum. |
void FullscreenController::ToggleFullscreenModeInternal(bool for_tab) { |
+#if defined(OS_WIN) |
+ // When in Metro snap mode, toggling in and out of fullscreen is prevented. |
+ if (IsInMetroSnapMode()) |
+ return; |
+#endif |
+ |
toggled_into_fullscreen_ = !window_->IsFullscreen(); |
// In kiosk mode, we always want to be fullscreen. When the browser first |