Index: chrome/browser/ui/views/frame/browser_non_client_frame_view_ash.cc |
diff --git a/chrome/browser/ui/views/frame/browser_non_client_frame_view_ash.cc b/chrome/browser/ui/views/frame/browser_non_client_frame_view_ash.cc |
index 4f1024844a816b1c2c6af879403b6cfc281c11bf..abb34d15682aeacfa6f0e8cc95567d99e8a35847 100644 |
--- a/chrome/browser/ui/views/frame/browser_non_client_frame_view_ash.cc |
+++ b/chrome/browser/ui/views/frame/browser_non_client_frame_view_ash.cc |
@@ -11,7 +11,6 @@ |
#include "ash/common/frame/default_header_painter.h" |
#include "ash/common/frame/frame_border_hit_test.h" |
#include "ash/common/frame/header_painter_util.h" |
-#include "ash/common/material_design/material_design_controller.h" |
#include "ash/common/wm_lookup.h" |
#include "ash/common/wm_shell.h" |
#include "ash/common/wm_window.h" |
@@ -137,11 +136,6 @@ gfx::Rect BrowserNonClientFrameViewAsh::GetBoundsForTabStrip( |
if (!tabstrip) |
return gfx::Rect(); |
- // When the tab strip is painted in the immersive fullscreen light bar style, |
- // the caption buttons and the avatar button are not visible. However, their |
- // bounds are still used to compute the tab strip bounds so that the tabs have |
- // the same horizontal position when the tab strip is painted in the immersive |
- // light bar style as when the top-of-window views are revealed. |
const int left_inset = GetTabStripLeftInset(); |
return gfx::Rect(left_inset, GetTopInset(false), |
std::max(0, width() - left_inset - GetTabStripRightInset()), |
@@ -149,8 +143,17 @@ gfx::Rect BrowserNonClientFrameViewAsh::GetBoundsForTabStrip( |
} |
int BrowserNonClientFrameViewAsh::GetTopInset(bool restored) const { |
- if (!ShouldPaint() || UseImmersiveLightbarHeaderStyle()) |
+ if (!ShouldPaint()) { |
+ // When immersive fullscreen unrevealed, tabstrip is offscreen with normal |
+ // tapstrip bounds, the top inset should reach this topmost edge. |
+ const ImmersiveModeController* const immersive_controller = |
+ browser_view()->immersive_mode_controller(); |
+ if (immersive_controller->IsEnabled() && |
+ !immersive_controller->IsRevealed()) { |
+ return (-1) * browser_view()->GetTabStripHeight(); |
+ } |
return 0; |
+ } |
if (!browser_view()->IsTabStripVisible()) { |
return (UsePackagedAppHeaderStyle()) |
@@ -216,12 +219,7 @@ void BrowserNonClientFrameViewAsh::GetWindowMask(const gfx::Size& size, |
} |
void BrowserNonClientFrameViewAsh::ResetWindowControls() { |
- // Hide the caption buttons in immersive fullscreen when the tab light bar |
- // is visible because it's confusing when the user hovers or clicks in the |
- // top-right of the screen and hits one. |
- // TODO(yiyix): Update |caption_button_container_|'s visibility calculation |
- // when Chrome OS MD is enabled by default. |
- caption_button_container_->SetVisible(!UseImmersiveLightbarHeaderStyle()); |
+ caption_button_container_->SetVisible(true); |
caption_button_container_->ResetWindowControls(); |
} |
@@ -245,14 +243,6 @@ void BrowserNonClientFrameViewAsh::OnPaint(gfx::Canvas* canvas) { |
if (!ShouldPaint()) |
return; |
- if (UseImmersiveLightbarHeaderStyle()) { |
- // The light bar header is not themed because theming it does not look good. |
- canvas->FillRect( |
- gfx::Rect(width(), header_painter_->GetHeaderHeightForPainting()), |
- SK_ColorBLACK); |
- return; |
- } |
- |
const bool should_paint_as_active = ShouldPaintAsActive(); |
caption_button_container_->SetPaintAsActive(should_paint_as_active); |
@@ -274,15 +264,8 @@ void BrowserNonClientFrameViewAsh::Layout() { |
header_painter_->LayoutHeader(); |
int painted_height = GetTopInset(false); |
- if (browser_view()->IsTabStripVisible()) { |
- const ImmersiveModeController* const immersive_controller = |
- browser_view()->immersive_mode_controller(); |
- if (!immersive_controller->IsEnabled() || |
- immersive_controller->IsRevealed() || |
- !ash::MaterialDesignController::IsImmersiveModeMaterial()) { |
- painted_height += browser_view()->tabstrip()->GetPreferredSize().height(); |
- } |
- } |
+ if (browser_view()->IsTabStripVisible()) |
+ painted_height += browser_view()->tabstrip()->GetPreferredSize().height(); |
header_painter_->SetHeaderHeightForPainting(painted_height); |
@@ -402,17 +385,6 @@ int BrowserNonClientFrameViewAsh::GetTabStripRightInset() const { |
caption_button_container_->GetPreferredSize().width(); |
} |
-bool BrowserNonClientFrameViewAsh::UseImmersiveLightbarHeaderStyle() const { |
- if (ash::MaterialDesignController::IsImmersiveModeMaterial()) |
- return false; |
- |
- const ImmersiveModeController* const immersive_controller = |
- browser_view()->immersive_mode_controller(); |
- return immersive_controller->IsEnabled() && |
- !immersive_controller->IsRevealed() && |
- browser_view()->IsTabStripVisible(); |
-} |
- |
bool BrowserNonClientFrameViewAsh::UsePackagedAppHeaderStyle() const { |
// Use for non tabbed trusted source windows, e.g. Settings, as well as apps. |
const Browser* const browser = browser_view()->browser(); |
@@ -433,28 +405,22 @@ void BrowserNonClientFrameViewAsh::LayoutProfileIndicatorIcon() { |
kAvatarIconPadding; |
int avatar_y = avatar_bottom - incognito_icon.height(); |
- // Hide the incognito icon in immersive fullscreen when the tab light bar is |
- // visible because the header is too short for the icognito icon to be |
- // recognizable. |
- const bool avatar_visible = !UseImmersiveLightbarHeaderStyle(); |
- const int avatar_height = avatar_visible ? (avatar_bottom - avatar_y) : 0; |
+ const int avatar_height = avatar_bottom - avatar_y; |
profile_indicator_icon()->SetBounds(kAvatarIconPadding, avatar_y, |
incognito_icon.width(), avatar_height); |
- profile_indicator_icon()->SetVisible(avatar_visible); |
+ profile_indicator_icon()->SetVisible(true); |
} |
bool BrowserNonClientFrameViewAsh::ShouldPaint() const { |
if (!frame()->IsFullscreen()) |
return true; |
- // We need to paint when in immersive fullscreen and either: |
- // - The top-of-window views are revealed. |
- // - The lightbar style tabstrip is visible. |
+ // We need to paint when the top-of-window views are revealed in immersive |
+ // fullscreen. |
ImmersiveModeController* immersive_mode_controller = |
browser_view()->immersive_mode_controller(); |
return immersive_mode_controller->IsEnabled() && |
- (immersive_mode_controller->IsRevealed() || |
- UseImmersiveLightbarHeaderStyle()); |
+ immersive_mode_controller->IsRevealed(); |
} |
void BrowserNonClientFrameViewAsh::PaintToolbarBackground(gfx::Canvas* canvas) { |