Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2029)

Unified Diff: ash/common/frame/custom_frame_view_ash.cc

Issue 2277563002: Wires up immersive mode for chrome and mash (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: feedback Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ash/common/frame/custom_frame_view_ash.h ('k') | ash/common/frame/default_header_painter.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ash/common/frame/custom_frame_view_ash.cc
diff --git a/ash/common/frame/custom_frame_view_ash.cc b/ash/common/frame/custom_frame_view_ash.cc
index 806dbfce8d699c7136a5fafb49706fdd3e4342c3..511306bb09264409831f4f54457c15133145866a 100644
--- a/ash/common/frame/custom_frame_view_ash.cc
+++ b/ash/common/frame/custom_frame_view_ash.cc
@@ -44,15 +44,9 @@ class CustomFrameViewAshWindowStateDelegate : public wm::WindowStateDelegate,
public WmWindowObserver {
public:
CustomFrameViewAshWindowStateDelegate(wm::WindowState* window_state,
- CustomFrameViewAsh* custom_frame_view)
+ CustomFrameViewAsh* custom_frame_view,
+ bool enable_immersive)
: window_state_(nullptr) {
- immersive_fullscreen_controller_ =
- WmShell::Get()->CreateImmersiveFullscreenController();
- if (immersive_fullscreen_controller_) {
- custom_frame_view->InitImmersiveFullscreenControllerForView(
- immersive_fullscreen_controller_.get());
- }
-
// Add a window state observer to exit fullscreen properly in case
// fullscreen is exited without going through
// WindowState::ToggleFullscreen(). This is the case when exiting
@@ -61,6 +55,16 @@ class CustomFrameViewAshWindowStateDelegate : public wm::WindowStateDelegate,
window_state_ = window_state;
window_state_->AddObserver(this);
window_state_->window()->AddObserver(this);
+
+ if (!enable_immersive)
+ return;
+
+ immersive_fullscreen_controller_ =
+ WmShell::Get()->CreateImmersiveFullscreenController();
+ if (immersive_fullscreen_controller_) {
+ custom_frame_view->InitImmersiveFullscreenControllerForView(
+ immersive_fullscreen_controller_.get());
+ }
}
~CustomFrameViewAshWindowStateDelegate() override {
if (window_state_) {
@@ -179,8 +183,14 @@ bool CustomFrameViewAsh::OverlayView::DoesIntersectRect(
// static
const char CustomFrameViewAsh::kViewClassName[] = "CustomFrameViewAsh";
-CustomFrameViewAsh::CustomFrameViewAsh(views::Widget* frame)
- : frame_(frame), header_view_(new HeaderView(frame)) {
+CustomFrameViewAsh::CustomFrameViewAsh(
+ views::Widget* frame,
+ ImmersiveFullscreenControllerDelegate* immersive_delegate,
+ bool enable_immersive)
+ : frame_(frame),
+ header_view_(new HeaderView(frame)),
+ immersive_delegate_(immersive_delegate ? immersive_delegate
+ : header_view_) {
WmWindow* frame_window = WmLookup::Get()->GetWindowForWidget(frame);
frame_window->InstallResizeHandleWindowTargeter(nullptr);
// |header_view_| is set as the non client view's overlay view so that it can
@@ -192,7 +202,8 @@ CustomFrameViewAsh::CustomFrameViewAsh(views::Widget* frame)
wm::WindowState* window_state = frame_window->GetWindowState();
if (!window_state->HasDelegate()) {
window_state->SetDelegate(std::unique_ptr<wm::WindowStateDelegate>(
- new CustomFrameViewAshWindowStateDelegate(window_state, this)));
+ new CustomFrameViewAshWindowStateDelegate(window_state, this,
+ enable_immersive)));
}
}
@@ -200,7 +211,8 @@ CustomFrameViewAsh::~CustomFrameViewAsh() {}
void CustomFrameViewAsh::InitImmersiveFullscreenControllerForView(
ImmersiveFullscreenController* immersive_fullscreen_controller) {
- immersive_fullscreen_controller->Init(header_view_, frame_, header_view_);
+ immersive_fullscreen_controller->Init(immersive_delegate_, frame_,
+ header_view_);
}
void CustomFrameViewAsh::SetFrameColors(SkColor active_frame_color,
@@ -314,9 +326,6 @@ void CustomFrameViewAsh::VisibilityChanged(views::View* starting_from,
header_view_->UpdateAvatarIcon();
}
-////////////////////////////////////////////////////////////////////////////////
-// CustomFrameViewAsh, views::ViewTargeterDelegate overrides:
-
views::View* CustomFrameViewAsh::GetHeaderView() {
return header_view_;
}
« no previous file with comments | « ash/common/frame/custom_frame_view_ash.h ('k') | ash/common/frame/default_header_painter.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698