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 863725605f6939ef66984031f4c86c03519959f2..bef2e3008d902308b17948008f55854a2316a5dc 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; |
@@ -844,17 +844,27 @@ int BookmarkBarView::GetToolbarOverlap() const { |
size_animation_.GetCurrentValue()); |
} |
+int BookmarkBarView::GetPreferredHeight() const { |
+ int height = chrome::kMinimumBookmarkBarHeight; |
+ for (int i = 0; i < child_count(); ++i) { |
+ const views::View* view = child_at(i); |
+ if (view->visible()) |
+ height = std::max(view->GetPreferredSize().height(), height); |
+ } |
+ return height; |
+} |
+ |
gfx::Size BookmarkBarView::GetPreferredSize() const { |
gfx::Size prefsize; |
+ int preferred_height = GetPreferredHeight(); |
if (IsDetached()) { |
prefsize.set_height( |
- chrome::kBookmarkBarHeight + |
- static_cast<int>( |
- (chrome::kNTPBookmarkBarHeight - chrome::kBookmarkBarHeight) * |
- (1 - size_animation_.GetCurrentValue()))); |
+ preferred_height + |
+ static_cast<int>((chrome::kNTPBookmarkBarHeight - preferred_height) * |
+ (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; |
} |
@@ -880,13 +890,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::kNTPBookmarkBarHeight - height) * |
+ current_state); |
} |
if (managed_bookmarks_button_->visible()) { |
@@ -926,20 +935,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() ? |
@@ -1658,6 +1668,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); |