| OLD | NEW |
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/ui/views/frame/immersive_mode_controller_ash.h" | 5 #include "chrome/browser/ui/views/frame/immersive_mode_controller_ash.h" |
| 6 | 6 |
| 7 #include "ash/shell.h" | 7 #include "ash/shell.h" |
| 8 #include "ash/wm/window_state.h" | 8 #include "ash/wm/window_state.h" |
| 9 #include "chrome/browser/chrome_notification_types.h" | 9 #include "chrome/browser/chrome_notification_types.h" |
| 10 #include "chrome/browser/ui/fullscreen/fullscreen_controller.h" | 10 #include "chrome/browser/ui/fullscreen/fullscreen_controller.h" |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 59 browser_view_ = browser_view; | 59 browser_view_ = browser_view; |
| 60 native_window_ = browser_view_->GetNativeWindow(); | 60 native_window_ = browser_view_->GetNativeWindow(); |
| 61 controller_->Init(this, browser_view_->frame(), | 61 controller_->Init(this, browser_view_->frame(), |
| 62 browser_view_->top_container()); | 62 browser_view_->top_container()); |
| 63 } | 63 } |
| 64 | 64 |
| 65 void ImmersiveModeControllerAsh::SetEnabled(bool enabled) { | 65 void ImmersiveModeControllerAsh::SetEnabled(bool enabled) { |
| 66 if (controller_->IsEnabled() == enabled) | 66 if (controller_->IsEnabled() == enabled) |
| 67 return; | 67 return; |
| 68 | 68 |
| 69 if (!browser_view_->browser()->is_app()) { |
| 70 // Mark a browser window as an immersive mode window so that the |
| 71 // window manager can treat it accordingly. |
| 72 ash::wm::GetWindowState(native_window_)->set_immersive_mode(enabled); |
| 73 } |
| 74 |
| 69 EnableWindowObservers(enabled); | 75 EnableWindowObservers(enabled); |
| 70 | 76 |
| 71 controller_->SetEnabled(browser_view_->browser()->is_app() ? | 77 controller_->SetEnabled(browser_view_->browser()->is_app() ? |
| 72 ash::ImmersiveFullscreenController::WINDOW_TYPE_HOSTED_APP : | 78 ash::ImmersiveFullscreenController::WINDOW_TYPE_HOSTED_APP : |
| 73 ash::ImmersiveFullscreenController::WINDOW_TYPE_BROWSER | 79 ash::ImmersiveFullscreenController::WINDOW_TYPE_BROWSER |
| 74 , enabled); | 80 , enabled); |
| 75 } | 81 } |
| 76 | 82 |
| 77 bool ImmersiveModeControllerAsh::IsEnabled() const { | 83 bool ImmersiveModeControllerAsh::IsEnabled() const { |
| 78 return controller_->IsEnabled(); | 84 return controller_->IsEnabled(); |
| (...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 241 // prevent it from being revealed. | 247 // prevent it from being revealed. |
| 242 bool in_tab_fullscreen = content::Source<FullscreenController>(source)-> | 248 bool in_tab_fullscreen = content::Source<FullscreenController>(source)-> |
| 243 IsWindowFullscreenForTabOrPending(); | 249 IsWindowFullscreenForTabOrPending(); |
| 244 ash::wm::GetWindowState(native_window_)->set_hide_shelf_when_fullscreen( | 250 ash::wm::GetWindowState(native_window_)->set_hide_shelf_when_fullscreen( |
| 245 in_tab_fullscreen); | 251 in_tab_fullscreen); |
| 246 ash::Shell::GetInstance()->UpdateShelfVisibility(); | 252 ash::Shell::GetInstance()->UpdateShelfVisibility(); |
| 247 | 253 |
| 248 if (tab_indicator_visibility_changed) | 254 if (tab_indicator_visibility_changed) |
| 249 LayoutBrowserRootView(); | 255 LayoutBrowserRootView(); |
| 250 } | 256 } |
| OLD | NEW |