| Index: chrome/browser/ui/views/frame/browser_view_layout.cc
|
| diff --git a/chrome/browser/ui/views/frame/browser_view_layout.cc b/chrome/browser/ui/views/frame/browser_view_layout.cc
|
| index 88851905819af931c60caab6d667a8aa5f8a6500..00311c5eb48adc645296308410b000f51fd54005 100644
|
| --- a/chrome/browser/ui/views/frame/browser_view_layout.cc
|
| +++ b/chrome/browser/ui/views/frame/browser_view_layout.cc
|
| @@ -7,8 +7,6 @@
|
| #include "chrome/browser/ui/browser_finder.h"
|
| #include "chrome/browser/ui/find_bar/find_bar.h"
|
| #include "chrome/browser/ui/find_bar/find_bar_controller.h"
|
| -#include "chrome/browser/ui/search/search_model.h"
|
| -#include "chrome/browser/ui/search/search_ui.h"
|
| #include "chrome/browser/ui/view_ids.h"
|
| #include "chrome/browser/ui/views/bookmarks/bookmark_bar_view.h"
|
| #include "chrome/browser/ui/views/download/download_shelf_view.h"
|
| @@ -24,7 +22,6 @@
|
| #include "ui/gfx/scrollbar_size.h"
|
| #include "ui/gfx/size.h"
|
| #include "ui/views/controls/single_split_view.h"
|
| -#include "ui/views/controls/webview/webview.h"
|
|
|
| namespace {
|
|
|
| @@ -291,16 +288,6 @@ void BrowserViewLayout::Layout(views::View* host) {
|
| browser()->GetFindBarController()->find_bar()->MoveWindowIfNecessary(
|
| gfx::Rect(), true);
|
| }
|
| -
|
| - if (active_bookmark_bar_ && active_bookmark_bar_->IsDetached() &&
|
| - browser()->search_model()->mode().is_ntp()) {
|
| - LayoutBookmarkBarAtBottom();
|
| - } else {
|
| -#if !defined(USE_AURA)
|
| - contents_container_->SetExtraContentHeight(0);
|
| - contents_split_->SetLeadingBottomOffset(0);
|
| -#endif
|
| - }
|
| }
|
|
|
| // Return the preferred size which is the size required to give each
|
| @@ -393,26 +380,20 @@ int BrowserViewLayout::LayoutBookmarkAndInfoBars(int top) {
|
| top + browser_view_->y() - kConstrainedWindowOverlap;
|
| find_bar_y_ = top + browser_view_->y() - 1;
|
| if (active_bookmark_bar_) {
|
| - // If the bookmark bar is showing in detached style:
|
| - // - for non-NTP mode, show any Info bar _above_ the bookmark bar, since the
|
| - // bookmark bar is styled to look like it's part of the page.
|
| - // - otherwise, show the bookmark bar at the bottom of content view, so just
|
| - // lay out infobar here; bottom bookmark bar is laid out in
|
| - // |LayoutBookmarkBarAtBottom|.
|
| - if (active_bookmark_bar_->IsDetached()) {
|
| - int infobar_top = LayoutInfoBar(top);
|
| - return browser()->search_model()->mode().is_ntp() ?
|
| - infobar_top : LayoutBookmarkBarAtTop(infobar_top);
|
| - }
|
| + // If we're showing the Bookmark bar in detached style, then we
|
| + // need to show any Info bar _above_ the Bookmark bar, since the
|
| + // Bookmark bar is styled to look like it's part of the page.
|
| + if (active_bookmark_bar_->IsDetached())
|
| + return LayoutBookmarkBar(LayoutInfoBar(top));
|
| // Otherwise, Bookmark bar first, Info bar second.
|
| top = std::max(browser_view_->toolbar_->bounds().bottom(),
|
| - LayoutBookmarkBarAtTop(top));
|
| + LayoutBookmarkBar(top));
|
| }
|
| find_bar_y_ = top + browser_view_->y() - 1;
|
| return LayoutInfoBar(top);
|
| }
|
|
|
| -int BrowserViewLayout::LayoutBookmarkBarAtTop(int top) {
|
| +int BrowserViewLayout::LayoutBookmarkBar(int top) {
|
| DCHECK(active_bookmark_bar_);
|
| int y = top;
|
| if (!browser_view_->IsBookmarkBarVisible()) {
|
| @@ -432,55 +413,6 @@ int BrowserViewLayout::LayoutBookmarkBarAtTop(int top) {
|
| return y + bookmark_bar_height;
|
| }
|
|
|
| -void BrowserViewLayout::LayoutBookmarkBarAtBottom() {
|
| - DCHECK(active_bookmark_bar_);
|
| - // Layout bookmark bar at bottom of content view in the y-direction.
|
| - // Bookmark bar is child of |BrowserView| while content view is child of
|
| - // ContentsContainer, so convert its bottom coordinate relative to
|
| - // |BrowserView|.
|
| - gfx::Point content_bottom(
|
| - 0, browser_view_->contents_container_->bounds().bottom());
|
| - views::View::ConvertPointToTarget(
|
| - browser_view_->contents_container_->parent(), browser_view_,
|
| - &content_bottom);
|
| - // Only show bookmark bar if height of content view is >=
|
| - // chrome::search::kMinContentHeightForBottomBookmarkBar.
|
| - if (browser_view_->contents_container_->height() <
|
| - chrome::search::kMinContentHeightForBottomBookmarkBar ||
|
| - !browser_view_->IsBookmarkBarVisible()) {
|
| - active_bookmark_bar_->SetVisible(false);
|
| - active_bookmark_bar_->SetBounds(0, content_bottom.y(),
|
| - browser_view_->width(), 0);
|
| -#if !defined(USE_AURA)
|
| - // When the bookmark bar is hidden, there is no need for a clip offset.
|
| - contents_container_->SetExtraContentHeight(0);
|
| - contents_split_->SetLeadingBottomOffset(0);
|
| -#endif // !USE_AURA
|
| - return;
|
| - }
|
| -
|
| - // BookmarkBarView uses infobar visibility to determine toolbar overlap, which
|
| - // is 0 if bookmark bar is detached and infobar is visible. Since the
|
| - // bookmark bar on the NTP is detached at bottom of content view, toolbar
|
| - // overlap is irrelevant. So set infobar visible to force no toolbar overlap.
|
| - active_bookmark_bar_->set_infobar_visible(true);
|
| - active_bookmark_bar_->SetVisible(true);
|
| -
|
| - int height = active_bookmark_bar_->GetPreferredSize().height();
|
| - active_bookmark_bar_->SetBounds(0, content_bottom.y() - height,
|
| - vertical_layout_rect_.width(), height);
|
| -#if !defined(USE_AURA)
|
| - // Without Aura, the bookmark bar can't be layered on top of the
|
| - // contents_container_. Setting a bottom clip offset on the
|
| - // contents_container_ allows it to tell its child view that it's bigger,
|
| - // and clip it so that a theme background aligned to the bottom
|
| - // or vertically centered is properly aligned whith the bookmark bar view
|
| - // drawing of the bottom of the bitmap.
|
| - contents_container_->SetExtraContentHeight(height);
|
| - contents_split_->SetLeadingBottomOffset(height);
|
| -#endif // !USE_AURA
|
| -}
|
| -
|
| int BrowserViewLayout::LayoutInfoBar(int top) {
|
| InfoBarContainerView* infobar_container = browser_view_->infobar_container_;
|
| // Raise the |infobar_container| by its vertical overlap.
|
| @@ -502,9 +434,32 @@ void BrowserViewLayout::LayoutTabContents(int top, int bottom) {
|
| // The views hierarcy (see browser_view.h for more details):
|
| // contents_split_ -> [contents_container_ | devtools]
|
|
|
| + gfx::Rect contents_bounds;
|
| + gfx::Rect devtools_bounds;
|
| +
|
| gfx::Rect contents_split_bounds(vertical_layout_rect_.x(), top,
|
| vertical_layout_rect_.width(),
|
| std::max(0, bottom - top));
|
| + gfx::Point contents_split_offset(
|
| + contents_split_bounds.x() - contents_split_->bounds().x(),
|
| + contents_split_bounds.y() - contents_split_->bounds().y());
|
| +
|
| + // Layout resize corner and calculate reserved contents rects here as all
|
| + // contents view bounds are already determined, but not yet set at this point,
|
| + // so contents will be laid out once at most.
|
| + gfx::Rect browser_reserved_rect;
|
| + if (!browser_view_->frame_->IsMaximized() &&
|
| + !browser_view_->frame_->IsFullscreen()) {
|
| + gfx::Size resize_corner_size = browser_view_->GetResizeCornerSize();
|
| + if (!resize_corner_size.IsEmpty()) {
|
| + gfx::Rect bounds = browser_view_->GetContentsBounds();
|
| + gfx::Point resize_corner_origin(
|
| + bounds.right() - resize_corner_size.width(),
|
| + bounds.bottom() - resize_corner_size.height());
|
| + browser_reserved_rect =
|
| + gfx::Rect(resize_corner_origin, resize_corner_size);
|
| + }
|
| + }
|
|
|
| // Now it's safe to actually resize all contents views in the hierarchy.
|
| contents_split_->SetBoundsRect(contents_split_bounds);
|
| @@ -512,11 +467,7 @@ void BrowserViewLayout::LayoutTabContents(int top, int bottom) {
|
|
|
| int BrowserViewLayout::GetTopMarginForActiveContent() {
|
| if (!active_bookmark_bar_ || !browser_view_->IsBookmarkBarVisible() ||
|
| - !active_bookmark_bar_->IsDetached() ||
|
| - // For |NTP| mode, detached bookmark bar does NOT overlap with top of
|
| - // content view; instead, it "overlaps" with bottom of content view, which
|
| - // is handled in |LayoutBookmarkBarAtBottom|.
|
| - browser()->search_model()->mode().is_ntp()) {
|
| + !active_bookmark_bar_->IsDetached()) {
|
| return 0;
|
| }
|
|
|
|
|