Chromium Code Reviews| Index: chrome/browser/ui/views/autofill/autofill_popup_base_view.cc |
| diff --git a/chrome/browser/ui/views/autofill/autofill_popup_base_view.cc b/chrome/browser/ui/views/autofill/autofill_popup_base_view.cc |
| index 2f0d3864dd0c2cd67a58662c07da6c57abcf5c3d..c912180cf576ebde7f9cb1ec09d10874d97ab4cc 100644 |
| --- a/chrome/browser/ui/views/autofill/autofill_popup_base_view.cc |
| +++ b/chrome/browser/ui/views/autofill/autofill_popup_base_view.cc |
| @@ -61,12 +61,6 @@ void AutofillPopupBaseView::DoShow() { |
| show_time_ = base::Time::Now(); |
| } |
| - // TODO(crbug.com/676164): Show different border color when focused/unfocused |
| - SetBorder(views::CreateSolidBorder( |
| - kPopupBorderThickness, |
| - GetNativeTheme()->GetSystemColor( |
| - ui::NativeTheme::kColorId_UnfocusedBorderColor))); |
| - |
| DoUpdateBoundsAndRedrawPopup(); |
| GetWidget()->Show(); |
| @@ -107,9 +101,31 @@ void AutofillPopupBaseView::RemoveObserver() { |
| void AutofillPopupBaseView::DoUpdateBoundsAndRedrawPopup() { |
| GetWidget()->SetBounds(delegate_->popup_bounds()); |
| + |
| + // We update the border whenever bounds are updated. Due to rounding when |
| + // calculating the actual view size (bounds()) from the requested view size |
| + // (delegate_.popup_bounds()), we may end up with extra space at the bottom |
| + // and right of the view. We fill this with extra border pixels. |
|
Peter Kasting
2017/02/16 00:30:26
Rob, can you comment here?
It seems like the issu
|
| + int extra_border_thickness_x = |
| + bounds().width() - delegate_->popup_bounds().width(); |
| + int extra_border_thickness_y = |
| + bounds().height() - delegate_->popup_bounds().height(); |
| + |
| + // TODO(crbug.com/676164): Show different border color when focused/unfocused |
| + SetBorder(views::CreateSolidSidedBorder( |
| + kPopupBorderThickness, kPopupBorderThickness, |
| + kPopupBorderThickness + extra_border_thickness_y, |
| + kPopupBorderThickness + extra_border_thickness_x, |
| + GetNativeTheme()->GetSystemColor( |
| + ui::NativeTheme::kColorId_UnfocusedBorderColor))); |
| + |
| SchedulePaint(); |
| } |
| +gfx::Rect AutofillPopupBaseView::GetPopupBounds() const { |
| + return delegate_->popup_bounds(); |
| +} |
| + |
| void AutofillPopupBaseView::OnNativeFocusChanged(gfx::NativeView focused_now) { |
| if (GetWidget() && GetWidget()->GetNativeView() != focused_now) |
| HideController(); |