| Index: chrome/browser/ui/views/toolbar/toolbar_view.cc
|
| diff --git a/chrome/browser/ui/views/toolbar/toolbar_view.cc b/chrome/browser/ui/views/toolbar/toolbar_view.cc
|
| index 88b0eb989f7d29d42519ac576fbb58a0f0f7a0fc..1623abb5dbdddf7403358d64ba1b093bb4dce813 100644
|
| --- a/chrome/browser/ui/views/toolbar/toolbar_view.cc
|
| +++ b/chrome/browser/ui/views/toolbar/toolbar_view.cc
|
| @@ -13,6 +13,7 @@
|
| #include "chrome/browser/chrome_notification_types.h"
|
| #include "chrome/browser/command_updater.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| +#include "chrome/browser/search/search.h"
|
| #include "chrome/browser/themes/theme_service.h"
|
| #include "chrome/browser/ui/browser.h"
|
| #include "chrome/browser/ui/browser_command_controller.h"
|
| @@ -223,14 +224,22 @@ void ToolbarView::Init() {
|
| app_menu_->set_id(VIEW_ID_APP_MENU);
|
|
|
| // Always add children in order from left to right, for accessibility.
|
| + site_chip_view_ = new SiteChipView(this);
|
| + chrome::OriginChipPosition origin_chip_position =
|
| + chrome::GetOriginChipPosition();
|
| AddChildView(back_);
|
| AddChildView(forward_);
|
| AddChildView(reload_);
|
| AddChildView(home_);
|
| + if (origin_chip_position == chrome::ORIGIN_CHIP_LEADING_LOCATION_BAR)
|
| + AddChildView(site_chip_view_);
|
| AddChildView(location_bar_);
|
| - site_chip_view_ = new SiteChipView(this);
|
| - AddChildView(site_chip_view_);
|
| + if (origin_chip_position == chrome::ORIGIN_CHIP_TRAILING_LOCATION_BAR)
|
| + AddChildView(site_chip_view_);
|
| AddChildView(browser_actions_);
|
| + if (origin_chip_position == chrome::ORIGIN_CHIP_LEADING_MENU_BUTTON ||
|
| + origin_chip_position == chrome::ORIGIN_CHIP_DISABLED)
|
| + AddChildView(site_chip_view_);
|
| AddChildView(app_menu_);
|
|
|
| LoadImages();
|
| @@ -554,29 +563,31 @@ void ToolbarView::Layout() {
|
| back_->SetBounds(kLeftEdgeSpacing, child_y, back_width, child_height);
|
| back_->SetLeadingMargin(0);
|
| }
|
| -
|
| int button_spacing = GetButtonSpacing();
|
| - forward_->SetBounds(back_->x() + back_->width() + button_spacing,
|
| - child_y, forward_->GetPreferredSize().width(), child_height);
|
| + int next_element_x = back_->bounds().right() + button_spacing;
|
|
|
| - reload_->SetBounds(forward_->x() + forward_->width() + button_spacing,
|
| - child_y, reload_->GetPreferredSize().width(), child_height);
|
| + forward_->SetBounds(next_element_x, child_y,
|
| + forward_->GetPreferredSize().width(), child_height);
|
| + next_element_x = forward_->bounds().right() + button_spacing;
|
| +
|
| + reload_->SetBounds(next_element_x, child_y,
|
| + reload_->GetPreferredSize().width(), child_height);
|
| + next_element_x = reload_->bounds().right();
|
|
|
| if (show_home_button_.GetValue()) {
|
| home_->SetVisible(true);
|
| - home_->SetBounds(reload_->x() + reload_->width() + button_spacing,
|
| - child_y, home_->GetPreferredSize().width(), child_height);
|
| + home_->SetBounds(next_element_x + button_spacing, child_y,
|
| + home_->GetPreferredSize().width(), child_height);
|
| } else {
|
| home_->SetVisible(false);
|
| - home_->SetBounds(reload_->x() + reload_->width(), child_y, 0, child_height);
|
| + home_->SetBounds(next_element_x, child_y, 0, child_height);
|
| }
|
| + next_element_x = home_->bounds().right() + kStandardSpacing;
|
|
|
| int browser_actions_width = browser_actions_->GetPreferredSize().width();
|
| -
|
| int app_menu_width = app_menu_->GetPreferredSize().width();
|
| - int location_x = home_->x() + home_->width() + kStandardSpacing;
|
| int available_width = std::max(0, width() - kRightEdgeSpacing -
|
| - app_menu_width - browser_actions_width - location_x);
|
| + app_menu_width - browser_actions_width - next_element_x);
|
|
|
| // Cap site chip width at 1/2 the size available to the location bar.
|
| site_chip_view_->SetVisible(site_chip_view_->ShouldShow());
|
| @@ -586,22 +597,29 @@ void ToolbarView::Layout() {
|
| if (site_chip_view_->visible())
|
| available_width -= site_chip_width + kStandardSpacing;
|
|
|
| + chrome::OriginChipPosition origin_chip_position =
|
| + chrome::GetOriginChipPosition();
|
| + if (origin_chip_position == chrome::ORIGIN_CHIP_LEADING_LOCATION_BAR) {
|
| + site_chip_view_->SetBounds(next_element_x, child_y,
|
| + site_chip_width, child_height);
|
| + next_element_x = site_chip_view_->bounds().right() + kStandardSpacing;
|
| + }
|
| +
|
| int location_height = location_bar_->GetPreferredSize().height();
|
| int location_y = (height() - location_height + 1) / 2;
|
| - location_bar_->SetBounds(location_x, location_y, std::max(available_width, 0),
|
| - location_height);
|
| - int browser_actions_x = location_bar_->bounds().right();
|
| -
|
| - if (site_chip_view_->visible()) {
|
| - site_chip_view_->SetBounds(browser_actions_x + kStandardSpacing,
|
| - child_y,
|
| - site_chip_width,
|
| - child_height);
|
| - browser_actions_x = site_chip_view_->bounds().right();
|
| + location_bar_->SetBounds(next_element_x, location_y,
|
| + std::max(available_width, 0), location_height);
|
| + next_element_x = location_bar_->bounds().right();
|
| +
|
| + if (origin_chip_position == chrome::ORIGIN_CHIP_TRAILING_LOCATION_BAR) {
|
| + site_chip_view_->SetBounds(next_element_x + kStandardSpacing, child_y,
|
| + site_chip_width, child_height);
|
| + next_element_x = site_chip_view_->bounds().right();
|
| }
|
|
|
| - browser_actions_->SetBounds(browser_actions_x, 0,
|
| + browser_actions_->SetBounds(next_element_x, 0,
|
| browser_actions_width, height());
|
| + next_element_x = browser_actions_->bounds().right();
|
|
|
| // The browser actions need to do a layout explicitly, because when an
|
| // extension is loaded/unloaded/changed, BrowserActionContainer removes and
|
| @@ -612,12 +630,17 @@ void ToolbarView::Layout() {
|
| // required.
|
| browser_actions_->Layout();
|
|
|
| + if (origin_chip_position == chrome::ORIGIN_CHIP_LEADING_MENU_BUTTON) {
|
| + site_chip_view_->SetBounds(next_element_x, child_y,
|
| + site_chip_width, child_height);
|
| + next_element_x = site_chip_view_->bounds().right() + kStandardSpacing;
|
| + }
|
| +
|
| // Extend the app menu to the screen's right edge in maximized mode just like
|
| // we extend the back button to the left edge.
|
| if (maximized)
|
| app_menu_width += kRightEdgeSpacing;
|
| - app_menu_->SetBounds(browser_actions_->x() + browser_actions_width, child_y,
|
| - app_menu_width, child_height);
|
| + app_menu_->SetBounds(next_element_x, child_y, app_menu_width, child_height);
|
| }
|
|
|
| bool ToolbarView::HitTestRect(const gfx::Rect& rect) const {
|
|
|