Index: ash/system/user/tray_user.cc |
diff --git a/ash/system/user/tray_user.cc b/ash/system/user/tray_user.cc |
index c11890ab88042ca02a04f0dafb7edf4d1957256c..abc765ee5ec8226ad28e7e90753b4652a3d070e7 100644 |
--- a/ash/system/user/tray_user.cc |
+++ b/ash/system/user/tray_user.cc |
@@ -540,10 +540,10 @@ void PublicAccountUserDetails::CalculatePreferredSize(SystemTrayItem* owner, |
const gfx::Insets insets = GetInsets(); |
views::TrayBubbleView* bubble_view = |
owner->system_tray()->GetSystemBubble()->bubble_view(); |
- int min_width = std::max( |
+ float min_width = std::max( |
link_size.width(), |
bubble_view->GetPreferredSize().width() - (used_width + insets.width())); |
- int max_width = std::min( |
+ float max_width = std::min<float>( |
font.GetStringWidth(text_) + space_width + link_size.width(), |
bubble_view->GetMaximumSize().width() - (used_width + insets.width())); |
// Do a binary search for the minimum width that ensures no more than three |
@@ -554,9 +554,9 @@ void PublicAccountUserDetails::CalculatePreferredSize(SystemTrayItem* owner, |
std::vector<base::string16> lines; |
while (min_width < max_width) { |
lines.clear(); |
- const int width = (min_width + max_width) / 2; |
+ const float width = (min_width + max_width) / 2; |
const bool too_narrow = gfx::ElideRectangleText( |
- text_, font, width, INT_MAX, gfx::TRUNCATE_LONG_WORDS, &lines) != 0; |
+ text_, font, width, FLT_MAX, gfx::TRUNCATE_LONG_WORDS, &lines) != 0; |
int line_count = lines.size(); |
if (!too_narrow && line_count == 3 && |
width - font.GetStringWidth(lines.back()) <= |
@@ -572,7 +572,7 @@ void PublicAccountUserDetails::CalculatePreferredSize(SystemTrayItem* owner, |
// Calculate the corresponding height and set the preferred size. |
lines.clear(); |
gfx::ElideRectangleText( |
- text_, font, min_width, INT_MAX, gfx::TRUNCATE_LONG_WORDS, &lines); |
+ text_, font, min_width, FLT_MAX, gfx::TRUNCATE_LONG_WORDS, &lines); |
int line_count = lines.size(); |
if (min_width - font.GetStringWidth(lines.back()) <= |
space_width + link_size.width()) { |
@@ -582,7 +582,7 @@ void PublicAccountUserDetails::CalculatePreferredSize(SystemTrayItem* owner, |
const int link_extra_height = std::max( |
link_size.height() - learn_more_->GetInsets().top() - line_height, 0); |
preferred_size_ = gfx::Size( |
- min_width + insets.width(), |
+ std::ceil(min_width + insets.width()), |
line_count * line_height + link_extra_height + insets.height()); |
bubble_view->SetWidth(preferred_size_.width() + used_width); |