| 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_;
|
|
|