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 5f1b2a608f0a7b92ac4182509a32659576a85043..5b83aebc135ac957e7d51abd23f43da138b17201 100644 |
--- a/chrome/browser/ui/views/toolbar/toolbar_view.cc |
+++ b/chrome/browser/ui/views/toolbar/toolbar_view.cc |
@@ -102,6 +102,19 @@ bool HasAshShell() { |
} |
#endif // OS_CHROMEOS |
+// Returns the y-position that will center an element of height |
+// |child_height| inside an element of height |parent_height|. For |
+// material design excess padding is placed below, for non-material |
+// it is placed above. |
+int CenteredChildY(int parent_height, int child_height) { |
+ int child_y = (parent_height - child_height + 1) / 2; |
Peter Kasting
2015/09/08 19:38:34
Nit: Why not just:
int roundoff_amount = ui::Ma
tdanderson
2015/09/09 17:23:06
Changed.
|
+ if (!ui::MaterialDesignController::IsModeMaterial() || |
+ parent_height - child_height % 2 == 0) { |
+ return child_y; |
+ } |
+ return child_y - 1; |
+} |
+ |
} // namespace |
// static |
@@ -557,7 +570,7 @@ void ToolbarView::Layout() { |
// padding above the buttons. |
Peter Kasting
2015/09/08 19:38:34
Nit: Delete the last sentence here
tdanderson
2015/09/09 17:23:06
Done.
|
int child_height = |
std::min(back_->GetPreferredSize().height(), height()); |
- int child_y = (height() - child_height + 1) / 2; |
+ int child_y = CenteredChildY(height(), child_height); |
// If the window is maximized, we extend the back button to the left so that |
// clicking on the left-most pixel will activate the back button. |
@@ -616,7 +629,8 @@ void ToolbarView::Layout() { |
location_bar_right_padding - next_element_x); |
int location_height = location_bar_->GetPreferredSize().height(); |
- int location_y = (height() - location_height + 1) / 2; |
+ int location_y = CenteredChildY(height(), location_height); |
+ |
location_bar_->SetBounds(next_element_x, location_y, |
std::max(available_width, 0), location_height); |
next_element_x = location_bar_->bounds().right() + location_bar_right_padding; |
@@ -769,9 +783,12 @@ gfx::Size ToolbarView::SizeForContentSize(gfx::Size size) const { |
if (ui::MaterialDesignController::IsModeMaterial()) { |
int content_height = std::max(back_->GetPreferredSize().height(), |
location_bar_->GetPreferredSize().height()); |
- int padding = GetThemeProvider()->GetDisplayProperty( |
- ThemeProperties::PROPERTY_TOOLBAR_VIEW_VERTICAL_PADDING); |
- size.SetToMax(gfx::Size(0, content_height + (padding * 2))); |
+ int top_padding = GetThemeProvider()->GetDisplayProperty( |
+ ThemeProperties::PROPERTY_TOOLBAR_VIEW_TOP_VERTICAL_PADDING); |
+ int bottom_padding = GetThemeProvider()->GetDisplayProperty( |
+ ThemeProperties::PROPERTY_TOOLBAR_VIEW_BOTTOM_VERTICAL_PADDING); |
+ size.SetToMax( |
+ gfx::Size(0, content_height + (top_padding + bottom_padding))); |
} else { |
gfx::ImageSkia* normal_background = |
GetThemeProvider()->GetImageSkiaNamed(IDR_CONTENT_TOP_CENTER); |