Chromium Code Reviews| Index: ui/views/controls/combobox/combobox.cc |
| diff --git a/ui/views/controls/combobox/combobox.cc b/ui/views/controls/combobox/combobox.cc |
| index dfd1585cc2b7c2508c7565b7a3e08a22206d56fb..1d1fff2d0ac828b107ca399f9cef6020701bd86e 100644 |
| --- a/ui/views/controls/combobox/combobox.cc |
| +++ b/ui/views/controls/combobox/combobox.cc |
| @@ -34,6 +34,7 @@ |
| #include "ui/views/controls/button/custom_button.h" |
| #include "ui/views/controls/button/label_button.h" |
| #include "ui/views/controls/combobox/combobox_listener.h" |
| +#include "ui/views/controls/focus_ring.h" |
| #include "ui/views/controls/focusable_border.h" |
| #include "ui/views/controls/menu/menu_config.h" |
| #include "ui/views/controls/menu/menu_model_adapter.h" |
| @@ -392,12 +393,13 @@ class Combobox::ComboboxMenuModel : public ui::MenuModel, |
| Combobox::Combobox(ui::ComboboxModel* model, Style style) |
| : model_(model), |
| style_(style), |
| - listener_(NULL), |
| + listener_(nullptr), |
| selected_index_(style == STYLE_ACTION ? 0 : model_->GetDefaultIndex()), |
| invalid_(false), |
| menu_model_(new ComboboxMenuModel(this, model)), |
| text_button_(new TransparentButton(this, style_ == STYLE_ACTION)), |
| arrow_button_(new TransparentButton(this, style_ == STYLE_ACTION)), |
| + focus_ring_(nullptr), |
| size_to_largest_label_(style_ == STYLE_NORMAL), |
| weak_ptr_factory_(this) { |
| ModelChanged(); |
| @@ -413,6 +415,8 @@ Combobox::Combobox(ui::ComboboxModel* model, Style style) |
| std::unique_ptr<Background> b = |
| PlatformStyle::CreateComboboxBackground(GetArrowContainerWidth()); |
| set_background(b.release()); |
| + focus_ring_ = new FocusRing(); |
| + AddChildView(focus_ring_); |
| } |
| // Initialize the button images. |
| @@ -715,6 +719,8 @@ void Combobox::OnFocus() { |
| View::OnFocus(); |
| // Border renders differently when focused. |
| SchedulePaint(); |
| + if (UseMd()) |
| + focus_ring_->SetVisible(true); |
| } |
| void Combobox::OnBlur() { |
| @@ -725,6 +731,8 @@ void Combobox::OnBlur() { |
| selector_->OnViewBlur(); |
| // Border renders differently when focused. |
| SchedulePaint(); |
| + if (UseMd()) |
|
sky
2016/10/03 23:53:15
Is there a reason not to delegate focus_ring_ here
Evan Stade
2016/10/04 01:04:55
No reason.
Made a couple of statics to create and
|
| + focus_ring_->SetVisible(false); |
| } |
| void Combobox::GetAccessibleState(ui::AXViewState* state) { |