Chromium Code Reviews| Index: chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc |
| diff --git a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc |
| index 520c8bf7caf068c7d79b363429a4e8f828a17b7e..e2f72cf1d9027fc9b7b1af9c6dcaec2845c2d985 100644 |
| --- a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc |
| +++ b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc |
| @@ -172,7 +172,7 @@ static const int kAppsShortcutButtonTag = 2; |
| // Preferred padding between text and edge. |
| static const int kButtonPaddingHorizontal = 6; |
| -static const int kButtonPaddingVertical = 4; |
| +static const int kButtonPaddingVertical = 5; |
| static const gfx::ElideBehavior kElideBehavior = gfx::FADE_TAIL; |
| @@ -843,17 +843,30 @@ int BookmarkBarView::GetToolbarOverlap() const { |
| size_animation_.GetCurrentValue()); |
| } |
| +int BookmarkBarView::GetPreferredHeight() const { |
| + int height = 0; |
| + for (int i = 0; i < child_count(); ++i) { |
| + const views::View* view = child_at(i); |
| + if (view->visible()) { |
| + gfx::Size pref = view->GetPreferredSize(); |
| + height = std::max(pref.height(), height); |
| + } |
| + } |
| + return std::max(height, chrome::kMinimumBookmarkBarHeight); |
| +} |
| + |
| gfx::Size BookmarkBarView::GetPreferredSize() const { |
| gfx::Size prefsize; |
| + int preferred_height = GetPreferredHeight(); |
| if (IsDetached()) { |
| prefsize.set_height( |
| - chrome::kBookmarkBarHeight + |
| + preferred_height + |
| static_cast<int>( |
| - (chrome::kNTPBookmarkBarHeight - chrome::kBookmarkBarHeight) * |
| + (chrome::kNTPMinimumBookmarkBarHeight - preferred_height) * |
|
sky
2016/08/16 21:56:13
Might this line and line 899 go negative now. I gu
kylix_rd
2016/08/17 15:39:02
Unless the font pushes preferred_height > kNTPMini
|
| (1 - size_animation_.GetCurrentValue()))); |
| } else { |
| - prefsize.set_height(static_cast<int>(chrome::kBookmarkBarHeight * |
| - size_animation_.GetCurrentValue())); |
| + prefsize.set_height(static_cast<int>(preferred_height * |
| + size_animation_.GetCurrentValue())); |
| } |
| return prefsize; |
| } |
| @@ -879,13 +892,12 @@ gfx::Size BookmarkBarView::GetMinimumSize() const { |
| // if they are visible. |
| int width = GetHorizontalMargin(); |
| - int height = chrome::kBookmarkBarHeight; |
| + int height = GetPreferredHeight(); |
| if (IsDetached()) { |
| double current_state = 1 - size_animation_.GetCurrentValue(); |
| width += 2 * static_cast<int>(kNewTabHorizontalPadding * current_state); |
| - height += static_cast<int>( |
| - (chrome::kNTPBookmarkBarHeight - chrome::kBookmarkBarHeight) * |
| - current_state); |
| + height += static_cast<int>((chrome::kNTPMinimumBookmarkBarHeight - height) * |
| + current_state); |
| } |
| if (managed_bookmarks_button_->visible()) { |
| @@ -925,20 +937,21 @@ void BookmarkBarView::Layout() { |
| int top_margin = IsDetached() ? kDetachedTopMargin : 0; |
| int y = top_margin; |
| int width = View::width() - 2 * GetHorizontalMargin(); |
| - int height = chrome::kBookmarkBarHeight - kBottomMargin; |
| + int preferred_height = GetPreferredHeight(); |
| + int height = preferred_height - kBottomMargin; |
| int separator_margin = kSeparatorMargin; |
| if (IsDetached()) { |
| double current_state = 1 - size_animation_.GetCurrentValue(); |
| x += static_cast<int>(kNewTabHorizontalPadding * current_state); |
| - y += (View::height() - chrome::kBookmarkBarHeight) / 2; |
| + y += (View::height() - preferred_height) / 2; |
| width -= static_cast<int>(kNewTabHorizontalPadding * current_state); |
| separator_margin -= static_cast<int>(kSeparatorMargin * current_state); |
| } else { |
| // For the attached appearance, pin the content to the bottom of the bar |
| // when animating in/out, as shrinking its height instead looks weird. This |
| // also matches how we layout infobars. |
| - y += View::height() - chrome::kBookmarkBarHeight; |
| + y += View::height() - preferred_height; |
| } |
| gfx::Size other_bookmarks_pref = other_bookmarks_button_->visible() ? |
| @@ -1657,6 +1670,8 @@ void BookmarkBarView::Init() { |
| UpdateBookmarksSeparatorVisibility(); |
| instructions_ = new BookmarkBarInstructionsView(this); |
| + instructions_->SetBorder(views::Border::CreateEmptyBorder( |
| + kButtonPaddingVertical, 0, kButtonPaddingVertical, 0)); |
| AddChildView(instructions_); |
| set_context_menu_controller(this); |