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

Unified Diff: chrome/browser/ui/views/frame/browser_view_layout.cc

Issue 6121007: Revert 71230 to see if it is related to hang on linux interactive_ui_tests.... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 11 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
Index: chrome/browser/ui/views/frame/browser_view_layout.cc
===================================================================
--- chrome/browser/ui/views/frame/browser_view_layout.cc (revision 71251)
+++ chrome/browser/ui/views/frame/browser_view_layout.cc (working copy)
@@ -13,12 +13,10 @@
#include "chrome/browser/ui/views/frame/browser_frame.h"
#include "chrome/browser/ui/views/frame/browser_view.h"
#include "chrome/browser/ui/views/frame/contents_container.h"
-#include "chrome/browser/ui/views/tab_contents/tab_contents_container.h"
#include "chrome/browser/ui/views/tabs/side_tab_strip.h"
#include "chrome/browser/ui/views/tabs/tab_strip.h"
#include "chrome/browser/ui/views/toolbar_view.h"
#include "gfx/scrollbar_size.h"
-#include "views/controls/single_split_view.h"
#include "views/window/window.h"
#if defined(OS_LINUX)
@@ -209,9 +207,9 @@
void BrowserViewLayout::ViewAdded(views::View* host, views::View* view) {
switch (view->GetID()) {
case VIEW_ID_CONTENTS_SPLIT: {
- contents_split_ = static_cast<views::SingleSplitView*>(view);
+ contents_split_ = view;
// We're installed as the LayoutManager before BrowserView creates the
- // contents, so we have to set contents_container_ here rather than in
+ // contents, so we have to set contents_container_ here rather than
// Installed.
contents_container_ = browser_view_->contents_;
break;
@@ -365,112 +363,9 @@
return top + height;
}
-// |browser_reserved_rect| is in browser_view_ coordinates.
-// |future_source_bounds| is in |source|'s parent coordinates.
-// |future_parent_offset| is required, since parent view is not moved yet.
-// Note that |future_parent_offset| is relative to browser_view_, not to
-// the parent view.
-void BrowserViewLayout::UpdateReservedContentsRect(
- const gfx::Rect& browser_reserved_rect,
- TabContentsContainer* source,
- const gfx::Rect& future_source_bounds,
- const gfx::Point& future_parent_offset) {
- gfx::Point resize_corner_origin(browser_reserved_rect.origin());
- // Convert |resize_corner_origin| from browser_view_ to source's parent
- // coordinates.
- views::View::ConvertPointToView(browser_view_, source->GetParent(),
- &resize_corner_origin);
- // Create |reserved_rect| in source's parent coordinates.
- gfx::Rect reserved_rect(resize_corner_origin, browser_reserved_rect.size());
- // Apply source's parent future offset to it.
- reserved_rect.Offset(-future_parent_offset.x(), -future_parent_offset.y());
- if (future_source_bounds.Intersects(reserved_rect)) {
- // |source| is not properly positioned yet to use ConvertPointToView,
- // so convert it into |source|'s coordinates manually.
- reserved_rect.Offset(-future_source_bounds.x(), -future_source_bounds.y());
- } else {
- reserved_rect = gfx::Rect();
- }
-
- source->SetReservedContentsRect(reserved_rect);
-}
-
void BrowserViewLayout::LayoutTabContents(int top, int bottom) {
- // The ultimate idea is to calcualte bounds and reserved areas for all
- // contents views first and then resize them all, so every view
- // (and its contents) is resized and laid out only once.
-
- // The views hierarcy (see browser_view.h for more details):
- // 1) Sidebar is not allowed:
- // contents_split_ -> [contents_container_ | devtools]
- // 2) Sidebar is allowed:
- // contents_split_ ->
- // [sidebar_split -> [contents_container_ | sidebar]] | devtools
-
- gfx::Rect sidebar_split_bounds;
- gfx::Rect contents_bounds;
- gfx::Rect sidebar_bounds;
- gfx::Rect devtools_bounds;
-
- gfx::Rect contents_split_bounds(vertical_layout_rect_.x(), top,
- vertical_layout_rect_.width(),
- std::max(0, bottom - top));
- contents_split_->CalculateChildrenBounds(
- contents_split_bounds, &sidebar_split_bounds, &devtools_bounds);
- gfx::Point contents_split_offset(
- contents_split_bounds.x() - contents_split_->bounds().x(),
- contents_split_bounds.y() - contents_split_->bounds().y());
- gfx::Point sidebar_split_offset(contents_split_offset);
- sidebar_split_offset.Offset(sidebar_split_bounds.x(),
- sidebar_split_bounds.y());
-
- views::SingleSplitView* sidebar_split = browser_view_->sidebar_split_;
- if (sidebar_split) {
- DCHECK(sidebar_split == contents_split_->GetChildViewAt(0));
- sidebar_split->CalculateChildrenBounds(
- sidebar_split_bounds, &contents_bounds, &sidebar_bounds);
- } else {
- contents_bounds = sidebar_split_bounds;
- }
-
- // Layout resize corner, sidebar mini tabs 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.
- // TODO(alekseys): layout sidebar minitabs and adjust reserved rect
- // accordingly.
- gfx::Rect browser_reserved_rect;
- if (!browser_view_->frame_->GetWindow()->IsMaximized() &&
- !browser_view_->frame_->GetWindow()->IsFullscreen()) {
- gfx::Size resize_corner_size = browser_view_->GetResizeCornerSize();
- if (!resize_corner_size.IsEmpty()) {
- gfx::Rect bounds = browser_view_->GetLocalBounds(false);
- 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);
- }
- }
-
- UpdateReservedContentsRect(browser_reserved_rect,
- browser_view_->contents_container_,
- contents_bounds,
- sidebar_split_offset);
- if (sidebar_split) {
- UpdateReservedContentsRect(browser_reserved_rect,
- browser_view_->sidebar_container_,
- sidebar_bounds,
- sidebar_split_offset);
- }
- UpdateReservedContentsRect(browser_reserved_rect,
- browser_view_->devtools_container_,
- devtools_bounds,
- contents_split_offset);
-
- // Now it's safe to actually resize all contents views in the hierarchy.
- contents_split_->SetBounds(contents_split_bounds);
- if (sidebar_split)
- sidebar_split->SetBounds(sidebar_split_bounds);
+ contents_split_->SetBounds(vertical_layout_rect_.x(), top,
+ vertical_layout_rect_.width(), bottom - top);
}
int BrowserViewLayout::GetTopMarginForActiveContent() {
« no previous file with comments | « chrome/browser/ui/views/frame/browser_view_layout.h ('k') | chrome/browser/ui/views/tab_contents/tab_contents_container.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698