// Copyright 2013 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "chrome/browser/ui/views/frame/top_container_view.h" #include "chrome/browser/ui/views/frame/browser_frame.h" #include "chrome/browser/ui/views/frame/browser_view.h" #include "chrome/browser/ui/views/frame/immersive_mode_controller.h" #include "ui/compositor/paint_context.h" TopContainerView::TopContainerView(BrowserView* browser_view) : browser_view_(browser_view) { } TopContainerView::~TopContainerView() { } const char* TopContainerView::GetClassName() const { return "TopContainerView"; } void TopContainerView::PaintChildren(const ui::PaintContext& context) { if (browser_view_->immersive_mode_controller()->IsRevealed()) { // 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(); // Use a clone without invalidation info, as we're painting something // outside of the normal parent-child relationship, so invalidations are // no longer in the correct space to compare. frame->Paint(ui::PaintContext( context, ui::PaintContext::CLONE_WITHOUT_INVALIDATION)); } View::PaintChildren(context); }