Index: ui/base/ime/input_method_base.cc |
diff --git a/ui/base/ime/input_method_base.cc b/ui/base/ime/input_method_base.cc |
index 44d52fa292043fb1b275404b4f6baf6c93ce0ba4..8ee7698dd647c3f6f56f4182eb5a788f082f8126 100644 |
--- a/ui/base/ime/input_method_base.cc |
+++ b/ui/base/ime/input_method_base.cc |
@@ -14,7 +14,8 @@ namespace ui { |
InputMethodBase::InputMethodBase() |
: delegate_(NULL), |
text_input_client_(NULL), |
- system_toplevel_window_focused_(false) { |
+ system_toplevel_window_focused_(false), |
+ is_candidate_popup_open_(false) { |
} |
InputMethodBase::~InputMethodBase() { |
@@ -132,6 +133,18 @@ void InputMethodBase::NotifyTextInputStateChanged( |
OnTextInputStateChanged(client)); |
} |
+void InputMethodBase::NotifyCandidateWindowStateChanged() { |
+ bool new_state = IsCandidatePopupOpen(); |
+ if (!is_candidate_popup_open_ && new_state) { |
+ text_input_client_->OnCandidateWindowShow(); |
+ } else if (is_candidate_popup_open_ && new_state) { |
+ text_input_client_->OnCandidateWindowUpdate(); |
+ } else if (is_candidate_popup_open_ && !new_state) { |
+ text_input_client_->OnCandidateWindowHide(); |
+ } |
+ is_candidate_popup_open_ = new_state; |
+} |
+ |
void InputMethodBase::SetFocusedTextInputClientInternal( |
TextInputClient* client) { |
TextInputClient* old = text_input_client_; |