| Index: ui/views/controls/textfield/textfield.cc
|
| diff --git a/ui/views/controls/textfield/textfield.cc b/ui/views/controls/textfield/textfield.cc
|
| index f40468bb859697a89a39272c840ec14d3e0be6e7..f2c16a405657ffe6a259ce64a846c49acdaee2a0 100644
|
| --- a/ui/views/controls/textfield/textfield.cc
|
| +++ b/ui/views/controls/textfield/textfield.cc
|
| @@ -846,6 +846,12 @@
|
| SchedulePaint();
|
| }
|
|
|
| +void Textfield::ViewHierarchyChanged(
|
| + const ViewHierarchyChangedDetails& details) {
|
| + if (details.is_add && details.child == this)
|
| + UpdateColorsFromTheme(GetNativeTheme());
|
| +}
|
| +
|
| void Textfield::OnPaint(gfx::Canvas* canvas) {
|
| OnPaintBackground(canvas);
|
| PaintTextAndCursor(canvas);
|
| @@ -890,15 +896,7 @@
|
| }
|
|
|
| void Textfield::OnNativeThemeChanged(const ui::NativeTheme* theme) {
|
| - gfx::RenderText* render_text = GetRenderText();
|
| - render_text->SetColor(GetTextColor());
|
| - UpdateBackgroundColor();
|
| - render_text->set_cursor_color(GetTextColor());
|
| - render_text->set_selection_color(theme->GetSystemColor(
|
| - ui::NativeTheme::kColorId_TextfieldSelectionColor));
|
| - render_text->set_selection_background_focused_color(theme->GetSystemColor(
|
| - ui::NativeTheme::kColorId_TextfieldSelectionBackgroundFocused));
|
| -
|
| + UpdateColorsFromTheme(theme);
|
| }
|
|
|
| ////////////////////////////////////////////////////////////////////////////////
|
| @@ -1464,6 +1462,17 @@
|
| SchedulePaint();
|
| }
|
|
|
| +void Textfield::UpdateColorsFromTheme(const ui::NativeTheme* theme) {
|
| + gfx::RenderText* render_text = GetRenderText();
|
| + render_text->SetColor(GetTextColor());
|
| + UpdateBackgroundColor();
|
| + render_text->set_cursor_color(GetTextColor());
|
| + render_text->set_selection_color(theme->GetSystemColor(
|
| + ui::NativeTheme::kColorId_TextfieldSelectionColor));
|
| + render_text->set_selection_background_focused_color(theme->GetSystemColor(
|
| + ui::NativeTheme::kColorId_TextfieldSelectionBackgroundFocused));
|
| +}
|
| +
|
| void Textfield::UpdateAfterChange(bool text_changed, bool cursor_changed) {
|
| if (text_changed) {
|
| if (controller_)
|
|
|