| Index: ui/views/corewm/tooltip_controller.cc
|
| diff --git a/ui/views/corewm/tooltip_controller.cc b/ui/views/corewm/tooltip_controller.cc
|
| index 54b4f7ae04a2826ea7abecf04c7208dd3795c01a..8b2f271090d3ed60acad3c79ce79767af2fd995d 100644
|
| --- a/ui/views/corewm/tooltip_controller.cc
|
| +++ b/ui/views/corewm/tooltip_controller.cc
|
| @@ -38,7 +38,7 @@ const int kTooltipHorizontalPadding = 3;
|
|
|
| // Max visual tooltip width. If a tooltip is greater than this width, it will
|
| // be wrapped.
|
| -const int kTooltipMaxWidthPixels = 400;
|
| +const float kTooltipMaxWidthPixels = 400;
|
|
|
| // Maximum number of lines we allow in the tooltip.
|
| const size_t kMaxLines = 10;
|
| @@ -109,14 +109,15 @@ class TooltipController::Tooltip : public views::WidgetObserver {
|
| void SetText(aura::Window* window,
|
| const string16& tooltip_text,
|
| const gfx::Point& location) {
|
| - int max_width, line_count;
|
| + float max_width;
|
| + int line_count;
|
| string16 trimmed_text(tooltip_text);
|
| controller_->TrimTooltipToFit(
|
| controller_->GetMaxWidth(location), &trimmed_text, &max_width,
|
| &line_count);
|
| label_.SetText(trimmed_text);
|
|
|
| - int width = max_width + 2 * kTooltipHorizontalPadding;
|
| + float width = max_width + 2 * kTooltipHorizontalPadding;
|
| int height = label_.GetHeightForWidth(max_width) +
|
| 2 * kTooltipVerticalPadding;
|
| if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kNoDropShadows)) {
|
| @@ -367,9 +368,9 @@ gfx::Rect TooltipController::GetBoundsForTooltip(
|
| }
|
|
|
| // static
|
| -void TooltipController::TrimTooltipToFit(int max_width,
|
| +void TooltipController::TrimTooltipToFit(float max_width,
|
| string16* text,
|
| - int* width,
|
| + float* width,
|
| int* line_count) {
|
| *width = 0;
|
| *line_count = 0;
|
| @@ -380,7 +381,7 @@ void TooltipController::TrimTooltipToFit(int max_width,
|
| *text = text->substr(0, kMaxTooltipLength);
|
|
|
| // Determine the available width for the tooltip.
|
| - int available_width = std::min(kTooltipMaxWidthPixels, max_width);
|
| + float available_width = std::min(kTooltipMaxWidthPixels, max_width);
|
|
|
| std::vector<string16> lines;
|
| base::SplitString(*text, '\n', &lines);
|
| @@ -395,14 +396,14 @@ void TooltipController::TrimTooltipToFit(int max_width,
|
| // to a new line.
|
| std::vector<string16> words;
|
| base::SplitStringDontTrim(*l, ' ', &words);
|
| - int current_width = 0;
|
| + float current_width = 0;
|
| string16 line;
|
| for (std::vector<string16>::iterator w = words.begin(); w != words.end();
|
| ++w) {
|
| string16 word = *w;
|
| if (w + 1 != words.end())
|
| word.push_back(' ');
|
| - int word_width = font.GetStringWidth(word);
|
| + float word_width = font.GetStringWidth(word);
|
| if (current_width + word_width > available_width) {
|
| // Current width will exceed the available width. Must start a new line.
|
| if (!line.empty())
|
| @@ -431,7 +432,7 @@ void TooltipController::TrimTooltipToFit(int max_width,
|
| l != result_lines.end(); ++l) {
|
| if (!result.empty())
|
| result.push_back('\n');
|
| - int line_width = font.GetStringWidth(*l);
|
| + float line_width = font.GetStringWidth(*l);
|
| // Since we only break at word boundaries, it could happen that due to some
|
| // very long word, line_width is greater than the available_width. In such
|
| // case, we simply truncate at available_width and add ellipses at the end.
|
|
|