Completes crrev.com/23478020 and makes sure of detachment from IME.

http://crrev.com/23478020 was incomplete and this CL implements the rest.

BUG=280219
TEST=none

Review URL: https://chromiumcodereview.appspot.com/23615013

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@221748 0039d316-1c4b-4281-b951-d872f2087c98
parent c56df86e
...@@ -130,6 +130,11 @@ void InputMethodTSF::SetFocusedTextInputClient(TextInputClient* client) { ...@@ -130,6 +130,11 @@ void InputMethodTSF::SetFocusedTextInputClient(TextInputClient* client) {
InputMethodWin::SetFocusedTextInputClient(client); InputMethodWin::SetFocusedTextInputClient(client);
} }
void InputMethodTSF::DetachTextInputClient(TextInputClient* client) {
InputMethodWin::DetachTextInputClient(client);
ui::TSFBridge::GetInstance()->RemoveFocusedClient(client);
}
bool InputMethodTSF::IsCandidatePopupOpen() const { bool InputMethodTSF::IsCandidatePopupOpen() const {
return tsf_event_observer_->IsCandidatePopupOpen(); return tsf_event_observer_->IsCandidatePopupOpen();
} }
......
...@@ -32,6 +32,7 @@ class UI_EXPORT InputMethodTSF : public InputMethodWin { ...@@ -32,6 +32,7 @@ class UI_EXPORT InputMethodTSF : public InputMethodWin {
virtual void OnCaretBoundsChanged(const TextInputClient* client) OVERRIDE; virtual void OnCaretBoundsChanged(const TextInputClient* client) OVERRIDE;
virtual void CancelComposition(const TextInputClient* client) OVERRIDE; virtual void CancelComposition(const TextInputClient* client) OVERRIDE;
virtual void SetFocusedTextInputClient(TextInputClient* client) OVERRIDE; virtual void SetFocusedTextInputClient(TextInputClient* client) OVERRIDE;
virtual void DetachTextInputClient(TextInputClient* client) OVERRIDE;
virtual bool IsCandidatePopupOpen() const OVERRIDE; virtual bool IsCandidatePopupOpen() const OVERRIDE;
// Overridden from InputMethodBase: // Overridden from InputMethodBase:
......
...@@ -29,8 +29,7 @@ InputMethodBridge::~InputMethodBridge() { ...@@ -29,8 +29,7 @@ InputMethodBridge::~InputMethodBridge() {
// this and go into |widget_|. NULL out |widget_| so we don't attempt to use // this and go into |widget_|. NULL out |widget_| so we don't attempt to use
// it. // it.
DetachFromWidget(); DetachFromWidget();
if (host_->GetTextInputClient() == this) host_->DetachTextInputClient(this);
host_->SetFocusedTextInputClient(NULL);
} }
void InputMethodBridge::OnFocus() { void InputMethodBridge::OnFocus() {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment