| Index: chrome/browser/views/autocomplete/autocomplete_popup_contents_view.cc
|
| ===================================================================
|
| --- chrome/browser/views/autocomplete/autocomplete_popup_contents_view.cc (revision 43972)
|
| +++ chrome/browser/views/autocomplete/autocomplete_popup_contents_view.cc (working copy)
|
| @@ -12,7 +12,6 @@
|
| #include "base/i18n/rtl.h"
|
| #include "chrome/browser/autocomplete/autocomplete_edit_view.h"
|
| #include "chrome/browser/autocomplete/autocomplete_popup_model.h"
|
| -#include "chrome/browser/bubble_positioner.h"
|
| #include "chrome/browser/views/bubble_border.h"
|
| #include "gfx/canvas.h"
|
| #include "gfx/color_utils.h"
|
| @@ -91,13 +90,11 @@
|
| // bottom of the row. See comment about the use of "minimum" for
|
| // kIconVerticalPadding.
|
| const int kTextVerticalPadding = 3;
|
| -// The padding at the left edge of the row, left of the icon.
|
| -const int kRowLeftPadding = 6;
|
| -// The padding on the right edge of the row, right of the text.
|
| -const int kRowRightPadding = 3;
|
| +// The padding at the edges of the row.
|
| +const int kRowPadding = 3;
|
| // The horizontal distance between the right edge of the icon and the left edge
|
| // of the text.
|
| -const int kIconTextSpacing = 9;
|
| +const int kIconTextSpacing = 4;
|
| // The size delta between the font used for the edit and the result rows. Passed
|
| // to gfx::Font::DeriveFont.
|
| #if !defined(OS_CHROMEOS)
|
| @@ -344,14 +341,12 @@
|
| }
|
|
|
| void AutocompleteResultView::Layout() {
|
| - icon_bounds_.SetRect(kRowLeftPadding, (height() - icon_size_) / 2,
|
| - icon_size_, icon_size_);
|
| + icon_bounds_.SetRect(kRowPadding, (height() - icon_size_) / 2, icon_size_,
|
| + icon_size_);
|
| int text_x = icon_bounds_.right() + kIconTextSpacing;
|
| - text_bounds_.SetRect(
|
| - text_x,
|
| - std::max(0, (height() - font_.height()) / 2),
|
| - std::max(0, bounds().right() - text_x - kRowRightPadding),
|
| - font_.height());
|
| + text_bounds_.SetRect(text_x, std::max(0, (height() - font_.height()) / 2),
|
| + std::max(0, bounds().right() - text_x - kRowPadding),
|
| + font_.height());
|
| }
|
|
|
| gfx::Size AutocompleteResultView::GetPreferredSize() {
|
| @@ -476,8 +471,8 @@
|
| gfx::Font display_font = GetFragmentFont(style);
|
| // Clamp text width to the available width within the popup so we elide if
|
| // necessary.
|
| - int string_width = std::min(display_font.GetStringWidth(text),
|
| - width() - kRowRightPadding - x);
|
| + int string_width =
|
| + std::min(display_font.GetStringWidth(text), width() - kRowPadding - x);
|
| int string_left = mirroring_context_->GetLeft(x, x + string_width);
|
| const int flags = force_rtl_directionality ?
|
| gfx::Canvas::FORCE_RTL_DIRECTIONALITY : 0;
|
| @@ -508,10 +503,10 @@
|
| AutocompleteEditView* edit_view,
|
| AutocompleteEditModel* edit_model,
|
| Profile* profile,
|
| - const BubblePositioner* bubble_positioner)
|
| + const views::View* location_bar)
|
| : model_(new AutocompletePopupModel(this, edit_model, profile)),
|
| edit_view_(edit_view),
|
| - bubble_positioner_(bubble_positioner),
|
| + location_bar_(location_bar),
|
| result_font_(font.DeriveFont(kEditFontAdjust)),
|
| ignore_mouse_drag_(false),
|
| ALLOW_THIS_IN_INITIALIZER_LIST(size_animation_(this)) {
|
| @@ -577,10 +572,13 @@
|
| }
|
|
|
| // Calculate desired bounds.
|
| - gfx::Rect location_stack_bounds =
|
| - bubble_positioner_->GetLocationStackBounds();
|
| - gfx::Rect new_target_bounds(bubble_border_->GetBounds(location_stack_bounds,
|
| - gfx::Size(location_stack_bounds.width(), total_child_height)));
|
| + gfx::Rect location_bar_bounds(location_bar_->bounds());
|
| + gfx::Point location;
|
| + views::View::ConvertPointToScreen(location_bar_, &location);
|
| + location_bar_bounds.set_origin(location);
|
| + location_bar_bounds.set_height(location_bar_bounds.height() - 1);
|
| + gfx::Rect new_target_bounds(bubble_border_->GetBounds(location_bar_bounds,
|
| + gfx::Size(location_bar_bounds.width(), total_child_height)));
|
|
|
| // If we're animating and our target height changes, reset the animation.
|
| // NOTE: If we just reset blindly on _every_ update, then when the user types
|
| @@ -787,7 +785,19 @@
|
| SkIntToScalar(bounding_rect.bottom()));
|
|
|
| SkScalar radius = SkIntToScalar(BubbleBorder::GetCornerRadius());
|
| - path->addRoundRect(rect, radius, radius);
|
| + SkScalar scaled_radius =
|
| + SkScalarMul(radius, (SK_ScalarSqrt2 - SK_Scalar1) * 4 / 3);
|
| + path->moveTo(rect.fRight, rect.fTop);
|
| + path->lineTo(rect.fRight, rect.fBottom - radius);
|
| + path->cubicTo(rect.fRight, rect.fBottom - radius + scaled_radius,
|
| + rect.fRight - radius + scaled_radius, rect.fBottom,
|
| + rect.fRight - radius, rect.fBottom);
|
| + path->lineTo(rect.fLeft + radius, rect.fBottom);
|
| + path->cubicTo(rect.fLeft + radius - scaled_radius, rect.fBottom,
|
| + rect.fLeft, rect.fBottom - radius + scaled_radius,
|
| + rect.fLeft, rect.fBottom - radius);
|
| + path->lineTo(rect.fLeft, rect.fTop);
|
| + path->close();
|
| }
|
|
|
| void AutocompletePopupContentsView::UpdateBlurRegion() {
|
| @@ -860,14 +870,3 @@
|
| }
|
| return AutocompletePopupModel::kNoMatch;
|
| }
|
| -
|
| -// static
|
| -AutocompletePopupView* AutocompletePopupView::CreatePopupView(
|
| - const gfx::Font& font,
|
| - AutocompleteEditView* edit_view,
|
| - AutocompleteEditModel* edit_model,
|
| - Profile* profile,
|
| - const BubblePositioner* bubble_positioner) {
|
| - return new AutocompletePopupContentsView(font, edit_view, edit_model,
|
| - profile, bubble_positioner);
|
| -}
|
|
|