Index: chrome/browser/ui/views/frame/top_container_view.cc |
diff --git a/chrome/browser/ui/views/frame/top_container_view.cc b/chrome/browser/ui/views/frame/top_container_view.cc |
index 212c7999e1fffda704732f1564106e68615e7149..4c95ebd0b3d823dc4dabb467ae017ea0147fba9b 100644 |
--- a/chrome/browser/ui/views/frame/top_container_view.cc |
+++ b/chrome/browser/ui/views/frame/top_container_view.cc |
@@ -21,10 +21,19 @@ gfx::Size TopContainerView::GetPreferredSize() { |
// be above the bottom of the toolbar while the bookmark bar is animating. |
int height = 0; |
for (int i = 0; i < child_count(); ++i) { |
- int child_bottom = child_at(i)->bounds().bottom(); |
+ views::View* child = child_at(i); |
+ if (!child->visible()) |
+ continue; |
+ int child_bottom = child->bounds().bottom(); |
if (child_bottom > height) |
height = child_bottom; |
} |
+ if (browser_view_->immersive_mode_controller()->IsRevealed()) { |
+ // In immersive fullscreen, the TopContainerView paints the window header |
+ // (themes, window title, window controls). The TopContainerView must still |
+ // paint these even if it does not have any visible children. |
+ height = std::max(height, browser_view_->frame()->GetTopInset()); |
+ } |
return gfx::Size(browser_view_->width(), height); |
} |
@@ -32,14 +41,12 @@ const char* TopContainerView::GetClassName() const { |
return "TopContainerView"; |
} |
-void TopContainerView::PaintChildren(gfx::Canvas* canvas) { |
+void TopContainerView::OnPaintBackground(gfx::Canvas* canvas) { |
if (browser_view_->immersive_mode_controller()->IsRevealed()) { |
- // Top-views depend on parts of the frame (themes, window buttons) being |
- // painted underneath them. Clip rect has already been set to the bounds |
- // of this view, so just paint the frame. |
+ // Top-views depend on parts of the frame (themes, window title, |
+ // window controls) being painted underneath them. Clip rect has already |
+ // been set to the bounds of this view, so just paint the frame. |
views::View* frame = browser_view_->frame()->GetFrameView(); |
frame->Paint(canvas); |
} |
- |
- views::View::PaintChildren(canvas); |
} |