| Index: ash/system/tray/tray_background_view.cc
|
| diff --git a/ash/system/tray/tray_background_view.cc b/ash/system/tray/tray_background_view.cc
|
| index 1f2cf2628582753c3e73b8a86ab5d18a1b8b71ab..17f5d1332d861ac04014e8a1bc41856a229d4b52 100644
|
| --- a/ash/system/tray/tray_background_view.cc
|
| +++ b/ash/system/tray/tray_background_view.cc
|
| @@ -4,6 +4,7 @@
|
|
|
| #include "ash/system/tray/tray_background_view.h"
|
|
|
| +#include "ash/material_design/material_design_controller.h"
|
| #include "ash/root_window_controller.h"
|
| #include "ash/screen_util.h"
|
| #include "ash/shelf/shelf_layout_manager.h"
|
| @@ -194,29 +195,16 @@ void TrayBackgroundView::TrayContainer::ViewHierarchyChanged(
|
| void TrayBackgroundView::TrayContainer::UpdateLayout() {
|
| // Adjust the size of status tray dark background by adding additional
|
| // empty border.
|
| - if (wm::IsHorizontalAlignment(alignment_)) {
|
| - SetBorder(views::Border::CreateEmptyBorder(
|
| - kPaddingFromEdgeOfShelf,
|
| - kPaddingFromEdgeOfShelf,
|
| - kPaddingFromEdgeOfShelf,
|
| - kPaddingFromEdgeOfShelf));
|
| -
|
| - views::BoxLayout* layout =
|
| - new views::BoxLayout(views::BoxLayout::kHorizontal, 0, 0, 0);
|
| - layout->SetDefaultFlex(1);
|
| - views::View::SetLayoutManager(layout);
|
| - } else {
|
| - SetBorder(views::Border::CreateEmptyBorder(
|
| - kPaddingFromEdgeOfShelf,
|
| - kPaddingFromEdgeOfShelf,
|
| - kPaddingFromEdgeOfShelf,
|
| - kPaddingFromEdgeOfShelf));
|
| -
|
| - views::BoxLayout* layout =
|
| - new views::BoxLayout(views::BoxLayout::kVertical, 0, 0, 0);
|
| - layout->SetDefaultFlex(1);
|
| - views::View::SetLayoutManager(layout);
|
| - }
|
| + views::BoxLayout::Orientation orientation =
|
| + wm::IsHorizontalAlignment(alignment_) ? views::BoxLayout::kHorizontal
|
| + : views::BoxLayout::kVertical;
|
| + SetBorder(views::Border::CreateEmptyBorder(
|
| + kAdjustBackgroundPadding, kAdjustBackgroundPadding,
|
| + kAdjustBackgroundPadding, kAdjustBackgroundPadding));
|
| +
|
| + views::BoxLayout* layout = new views::BoxLayout(orientation, 0, 0, 0);
|
| + layout->SetDefaultFlex(1);
|
| + views::View::SetLayoutManager(layout);
|
| PreferredSizeChanged();
|
| }
|
|
|
| @@ -412,31 +400,11 @@ void TrayBackgroundView::SetShelfAlignment(wm::ShelfAlignment alignment) {
|
| }
|
|
|
| void TrayBackgroundView::SetTrayBorder() {
|
| - views::View* parent = status_area_widget_->status_area_widget_delegate();
|
| - // Tray views are laid out right-to-left or bottom-to-top
|
| - bool on_edge = (this == parent->child_at(0));
|
| - int left_edge, top_edge, right_edge, bottom_edge;
|
| - if (wm::IsHorizontalAlignment(shelf_alignment())) {
|
| - top_edge = ShelfLayoutManager::kShelfItemInset;
|
| - left_edge = 0;
|
| - bottom_edge = kShelfSize -
|
| - ShelfLayoutManager::kShelfItemInset - kShelfItemHeight;
|
| - right_edge = on_edge ? kPaddingFromEdgeOfShelf : 0;
|
| - } else if (shelf_alignment() == wm::SHELF_ALIGNMENT_LEFT) {
|
| - top_edge = 0;
|
| - left_edge = kShelfSize -
|
| - ShelfLayoutManager::kShelfItemInset - kShelfItemHeight;
|
| - bottom_edge = on_edge ? kPaddingFromEdgeOfShelf : 0;
|
| - right_edge = ShelfLayoutManager::kShelfItemInset;
|
| - } else { // SHELF_ALIGNMENT_RIGHT
|
| - top_edge = 0;
|
| - left_edge = ShelfLayoutManager::kShelfItemInset;
|
| - bottom_edge = on_edge ? kPaddingFromEdgeOfShelf : 0;
|
| - right_edge = kShelfSize -
|
| - ShelfLayoutManager::kShelfItemInset - kShelfItemHeight;
|
| - }
|
| - SetBorder(views::Border::CreateEmptyBorder(
|
| - top_edge, left_edge, bottom_edge, right_edge));
|
| + gfx::Insets inset;
|
| + GetHitRegionInsets(inset);
|
| +
|
| + SetBorder(views::Border::CreateEmptyBorder(inset.top(), inset.left(),
|
| + inset.bottom(), inset.right()));
|
| }
|
|
|
| void TrayBackgroundView::OnImplicitAnimationsCompleted() {
|
| @@ -588,4 +556,45 @@ void TrayBackgroundView::UpdateBubbleViewArrow(
|
| // Nothing to do here.
|
| }
|
|
|
| +void TrayBackgroundView::GetHitRegionInsets(gfx::Insets& insets) {
|
| + int top_edge, left_edge, bottom_edge, right_edge;
|
| + // Tray views are laid out right-to-left or bottom-to-top
|
| + if (MaterialDesignController::IsShelfMaterial()) {
|
| + if (wm::IsHorizontalAlignment(shelf_alignment())) {
|
| + top_edge = (GetShelfLayoutConstant(SHELF_SIZE) - kShelfItemHeight) / 2;
|
| + left_edge = 0;
|
| + bottom_edge = (GetShelfLayoutConstant(SHELF_SIZE) - kShelfItemHeight) / 2;
|
| + right_edge = 0;
|
| + } else { // SHELF_ALIGNMENT_LEFT || SHELF_ALIGNMENT_RIGHT
|
| + top_edge = 0;
|
| + left_edge = (GetShelfLayoutConstant(SHELF_SIZE) - kShelfItemHeight) / 2;
|
| + bottom_edge = 0;
|
| + right_edge = (GetShelfLayoutConstant(SHELF_SIZE) - kShelfItemHeight) / 2;
|
| + }
|
| + } else {
|
| + views::View* parent = status_area_widget_->status_area_widget_delegate();
|
| + bool on_edge = (this == parent->child_at(0));
|
| +
|
| + if (wm::IsHorizontalAlignment(shelf_alignment())) {
|
| + top_edge = kShelfItemInset;
|
| + left_edge = 0;
|
| + bottom_edge = GetShelfLayoutConstant(SHELF_SIZE) - kShelfItemInset -
|
| + kShelfItemHeight;
|
| + right_edge = on_edge ? GetTrayConstant(PADDING_FROM_EDGE_OF_SHELF) : 0;
|
| + } else if (shelf_alignment() == wm::SHELF_ALIGNMENT_LEFT) {
|
| + top_edge = 0;
|
| + left_edge = GetShelfLayoutConstant(SHELF_SIZE) - kShelfItemInset -
|
| + kShelfItemHeight;
|
| + bottom_edge = on_edge ? GetTrayConstant(PADDING_FROM_EDGE_OF_SHELF) : 0;
|
| + right_edge = kShelfItemInset;
|
| + } else { // SHELF_ALIGNMENT_RIGHT
|
| + top_edge = 0;
|
| + left_edge = kShelfItemInset;
|
| + bottom_edge = on_edge ? GetTrayConstant(PADDING_FROM_EDGE_OF_SHELF) : 0;
|
| + right_edge = GetShelfLayoutConstant(SHELF_SIZE) - kShelfItemInset -
|
| + kShelfItemHeight;
|
| + }
|
| + }
|
| + insets.Set(top_edge, left_edge, bottom_edge, right_edge);
|
| +}
|
| } // namespace ash
|
|
|