Chromium Code Reviews| Index: chrome/browser/chromeos/input_method/input_method_engine_ibus.cc |
| diff --git a/chrome/browser/chromeos/input_method/input_method_engine_ibus.cc b/chrome/browser/chromeos/input_method/input_method_engine_ibus.cc |
| index 5992f621e8a3fc7760ddb7402173442272155884..0029039571e5bb9c428f5d6fe0f78bba1c01d2b7 100644 |
| --- a/chrome/browser/chromeos/input_method/input_method_engine_ibus.cc |
| +++ b/chrome/browser/chromeos/input_method/input_method_engine_ibus.cc |
| @@ -14,7 +14,6 @@ |
| #include "base/strings/string_util.h" |
| #include "base/strings/utf_string_conversions.h" |
| #include "chromeos/dbus/dbus_thread_manager.h" |
| -#include "chromeos/dbus/ibus/ibus_engine_factory_service.h" |
| #include "chromeos/dbus/ibus/ibus_engine_service.h" |
| #include "chromeos/dbus/ibus/ibus_text.h" |
| #include "chromeos/ime/candidate_window.h" |
| @@ -43,6 +42,7 @@ InputMethodEngineIBus::InputMethodEngineIBus() |
| active_(false), |
| context_id_(0), |
| next_context_id_(1), |
| + is_create_engine_handler_called_(false), |
| aux_text_(new IBusText()), |
| aux_text_visible_(false), |
| observer_(NULL), |
| @@ -50,17 +50,14 @@ InputMethodEngineIBus::InputMethodEngineIBus() |
| preedit_cursor_(0), |
| candidate_window_(new input_method::CandidateWindow()), |
| window_visible_(false), |
| - ibus_engine_factory_service_(IBusEngineFactoryService::Create()), |
| weak_ptr_factory_(this) {} |
| InputMethodEngineIBus::~InputMethodEngineIBus() { |
| input_method::InputMethodManager::Get()->RemoveInputMethodExtension(ibus_id_); |
| - // Do not unset engine before removing input method extension, above function |
| - // may call reset function of engine object. |
| - // TODO(nona): Call Reset manually here and remove relevant code from |
| - // InputMethodManager once ibus-daemon is gone. (crbug.com/158273) |
| - if (!object_path_.value().empty()) { |
| + // Do not unset engine before removing input method extension, above |
| + // function may call reset function of engine object. |
| + if (is_create_engine_handler_called_) { |
| GetCurrentService()->UnsetEngine(this); |
| ibus_engine_service_.reset(); |
| } |
| @@ -579,20 +576,17 @@ void InputMethodEngineIBus::OnDisconnected() { |
| } |
| void InputMethodEngineIBus::RegisterComponent() { |
| - ibus_engine_factory_service_->SetCreateEngineHandler( |
| + IBusBridge::Get()->SetCreateEngineHandler( |
| ibus_id_, |
| base::Bind(&InputMethodEngineIBus::CreateEngineHandler, |
| weak_ptr_factory_.GetWeakPtr())); |
| } |
| -void InputMethodEngineIBus::CreateEngineHandler( |
| - const IBusEngineFactoryService::CreateEngineResponseSender& sender) { |
| +void InputMethodEngineIBus::CreateEngineHandler() { |
| GetCurrentService()->UnsetEngine(this); |
|
Seigo Nonaka
2013/11/12 03:37:22
Seems no need to call this function?
Hiro Komatsu
2013/11/12 05:01:39
I am deleting IBusEngineService in a different pat
|
| ibus_engine_service_.reset(); |
| - object_path_ = ibus_engine_factory_service_->GenerateUniqueObjectPath(); |
| - |
| GetCurrentService()->SetEngine(this); |
| - sender.Run(object_path_); |
| + is_create_engine_handler_called_ = true; |
| } |
| } // namespace chromeos |