| Index: ash/common/system/tray/tray_details_view.cc
|
| diff --git a/ash/common/system/tray/tray_details_view.cc b/ash/common/system/tray/tray_details_view.cc
|
| index b714d61ef18969ad8afe213938c9e377b34dae1b..3ba5774ba636e8ff26d7d58482691f05688fda11 100644
|
| --- a/ash/common/system/tray/tray_details_view.cc
|
| +++ b/ash/common/system/tray/tray_details_view.cc
|
| @@ -28,6 +28,10 @@
|
| namespace ash {
|
| namespace {
|
|
|
| +bool UseMd() {
|
| + return MaterialDesignController::IsSystemTrayMenuMaterial();
|
| +}
|
| +
|
| // A view that is used as ScrollView contents. It supports designating some of
|
| // the children as sticky header rows. The sticky header rows are not scrolled
|
| // above the top of the visible viewport until the next one "pushes" it up and
|
| @@ -296,8 +300,7 @@ TrayDetailsView::TrayDetailsView(SystemTrayItem* owner)
|
| TrayDetailsView::~TrayDetailsView() {}
|
|
|
| void TrayDetailsView::OnViewClicked(views::View* sender) {
|
| - if (!MaterialDesignController::IsSystemTrayMenuMaterial() && title_row_ &&
|
| - sender == title_row_->content()) {
|
| + if (!UseMd() && title_row_ && sender == title_row_->content()) {
|
| TransitionToDefaultView();
|
| return;
|
| }
|
| @@ -307,8 +310,7 @@ void TrayDetailsView::OnViewClicked(views::View* sender) {
|
|
|
| void TrayDetailsView::ButtonPressed(views::Button* sender,
|
| const ui::Event& event) {
|
| - if (MaterialDesignController::IsSystemTrayMenuMaterial() &&
|
| - sender == back_button_) {
|
| + if (UseMd() && sender == back_button_) {
|
| TransitionToDefaultView();
|
| return;
|
| }
|
| @@ -320,7 +322,7 @@ void TrayDetailsView::CreateTitleRow(int string_id) {
|
| DCHECK(!title_row_);
|
| title_row_ = new SpecialPopupRow();
|
| title_row_->SetTextLabel(string_id, this);
|
| - if (MaterialDesignController::IsSystemTrayMenuMaterial()) {
|
| + if (UseMd()) {
|
| title_row_->SetBorder(views::CreateEmptyBorder(kTitleRowPaddingTop, 0,
|
| kTitleRowPaddingBottom, 0));
|
| AddChildViewAt(title_row_, 0);
|
| @@ -343,7 +345,7 @@ void TrayDetailsView::CreateTitleRow(int string_id) {
|
|
|
| CreateExtraTitleRowButtons();
|
|
|
| - if (MaterialDesignController::IsSystemTrayMenuMaterial())
|
| + if (UseMd())
|
| back_button_ = title_row_->AddBackButton(this);
|
|
|
| Layout();
|
| @@ -399,7 +401,7 @@ void TrayDetailsView::TransitionToDefaultView() {
|
| // Cache pointer to owner in this function scope. TrayDetailsView will be
|
| // deleted after called ShowDefaultView.
|
| SystemTrayItem* owner = owner_;
|
| - if (MaterialDesignController::IsSystemTrayMenuMaterial()) {
|
| + if (UseMd()) {
|
| if (back_button_ && back_button_->HasFocus())
|
| owner->set_restore_focus(true);
|
| } else {
|
| @@ -419,21 +421,28 @@ void TrayDetailsView::Layout() {
|
| }
|
|
|
| if (scroller_) {
|
| - scroller_->set_fixed_size(gfx::Size());
|
| - gfx::Size size = GetPreferredSize();
|
| -
|
| - // Set the scroller to fill the space above the bottom row, so that the
|
| - // bottom row of the detailed view will always stay just above the title
|
| - // row.
|
| - gfx::Size scroller_size = scroll_content_->GetPreferredSize();
|
| - scroller_->set_fixed_size(
|
| - gfx::Size(width() + scroller_->GetScrollBarWidth(),
|
| - scroller_size.height() - (size.height() - height())));
|
| + if (UseMd()) {
|
| + gfx::Size scroller_size = scroll_content_->GetPreferredSize();
|
| + gfx::Size pref_size = GetPreferredSize();
|
| + scroller()->ClipHeightTo(
|
| + 0, scroller_size.height() - (pref_size.height() - height()));
|
| + } else {
|
| + scroller_->set_fixed_size(gfx::Size());
|
| + gfx::Size size = GetPreferredSize();
|
| +
|
| + // Set the scroller to fill the space above the bottom row, so that the
|
| + // bottom row of the detailed view will always stay just above the title
|
| + // row.
|
| + gfx::Size scroller_size = scroll_content_->GetPreferredSize();
|
| + scroller_->set_fixed_size(
|
| + gfx::Size(width() + scroller_->GetScrollBarWidth(),
|
| + scroller_size.height() - (size.height() - height())));
|
| + }
|
| }
|
|
|
| views::View::Layout();
|
|
|
| - if (title_row_ && !MaterialDesignController::IsSystemTrayMenuMaterial()) {
|
| + if (title_row_ && !UseMd()) {
|
| // Always make sure the title row is bottom-aligned in non-MD.
|
| gfx::Rect fbounds = title_row_->bounds();
|
| fbounds.set_y(height() - title_row_->height());
|
|
|