| Index: ui/base/ime/win/tsf_bridge.cc
|
| ===================================================================
|
| --- ui/base/ime/win/tsf_bridge.cc (revision 194055)
|
| +++ ui/base/ime/win/tsf_bridge.cc (working copy)
|
| @@ -44,6 +44,7 @@
|
| TextInputClient* client) OVERRIDE;
|
| virtual void RemoveFocusedClient(TextInputClient* client) OVERRIDE;
|
| virtual base::win::ScopedComPtr<ITfThreadMgr> GetThreadManager() OVERRIDE;
|
| + virtual TextInputClient* GetFocusedTextInputClient() const OVERRIDE;
|
|
|
| private:
|
| friend struct DefaultSingletonTraits<TSFBridgeDelegate>;
|
| @@ -272,6 +273,10 @@
|
| }
|
| }
|
|
|
| +TextInputClient* TSFBridgeDelegate::GetFocusedTextInputClient() const {
|
| + return client_;
|
| +}
|
| +
|
| base::win::ScopedComPtr<ITfThreadMgr> TSFBridgeDelegate::GetThreadManager() {
|
| DCHECK_EQ(MessageLoop::TYPE_UI, MessageLoop::current()->type());
|
| DCHECK(IsInitialized());
|
| @@ -438,10 +443,13 @@
|
| DVLOG(1) << "Do not use TSFBridge without UI thread.";
|
| return false;
|
| }
|
| - tls_tsf_bridge.Initialize(TSFBridge::Finalize);
|
| - TSFBridgeDelegate* delegate = new TSFBridgeDelegate();
|
| - tls_tsf_bridge.Set(delegate);
|
| - return delegate->Initialize();
|
| + if (!tls_tsf_bridge.initialized()) {
|
| + tls_tsf_bridge.Initialize(TSFBridge::Finalize);
|
| + TSFBridgeDelegate* delegate = new TSFBridgeDelegate();
|
| + tls_tsf_bridge.Set(delegate);
|
| + return delegate->Initialize();
|
| + }
|
| + return true;
|
| }
|
|
|
| // static
|
|
|