Index: ui/views/controls/combobox/combobox.cc |
diff --git a/ui/views/controls/combobox/combobox.cc b/ui/views/controls/combobox/combobox.cc |
index e1c7586f2de4cbf49502916bd876eecbb9099ab5..f93f5a3295caa49fbb8f2e4e59c5479bfd20c0c2 100644 |
--- a/ui/views/controls/combobox/combobox.cc |
+++ b/ui/views/controls/combobox/combobox.cc |
@@ -9,6 +9,7 @@ |
#include "base/message_loop/message_loop_proxy.h" |
#include "base/strings/utf_string_conversions.h" |
#include "ui/accessibility/ax_view_state.h" |
+#include "ui/base/ime/input_method.h" |
#include "ui/base/models/combobox_model.h" |
#include "ui/base/resource/resource_bundle.h" |
#include "ui/events/event.h" |
@@ -33,7 +34,6 @@ |
#include "ui/views/controls/menu/submenu_view.h" |
#include "ui/views/controls/prefix_selector.h" |
#include "ui/views/controls/textfield/textfield.h" |
-#include "ui/views/ime/input_method.h" |
#include "ui/views/mouse_constants.h" |
#include "ui/views/painter.h" |
#include "ui/views/widget/widget.h" |
@@ -273,6 +273,8 @@ Combobox::Combobox(ui::ComboboxModel* model) |
Combobox::~Combobox() { |
model_->RemoveObserver(this); |
+ if (selector_ && GetInputMethod()) |
+ GetInputMethod()->DetachTextInputClient(selector_.get()); |
} |
// static |
@@ -540,14 +542,18 @@ void Combobox::OnPaint(gfx::Canvas* canvas) { |
} |
void Combobox::OnFocus() { |
- GetInputMethod()->OnFocus(); |
+ if (GetInputMethod()) |
+ GetInputMethod()->SetFocusedTextInputClient(GetTextInputClient()); |
+ |
View::OnFocus(); |
// Border renders differently when focused. |
SchedulePaint(); |
} |
void Combobox::OnBlur() { |
- GetInputMethod()->OnBlur(); |
+ if (GetInputMethod()) |
+ GetInputMethod()->DetachTextInputClient(GetTextInputClient()); |
+ |
if (selector_) |
selector_->OnViewBlur(); |
// Border renders differently when focused. |