Index: chromeos/dbus/ibus/ibus_engine_service.cc |
diff --git a/chromeos/dbus/ibus/ibus_engine_service.cc b/chromeos/dbus/ibus/ibus_engine_service.cc |
index a5e298dad96b8957e32ca3b6827dc6b80f2117c7..e670398fbbd5cfcde8908948435c4e8bb00cf4ff 100644 |
--- a/chromeos/dbus/ibus/ibus_engine_service.cc |
+++ b/chromeos/dbus/ibus/ibus_engine_service.cc |
@@ -142,9 +142,9 @@ class IBusEngineServiceImpl : public IBusEngineService { |
} |
// IBusEngineService override. |
- virtual void UnsetEngine() OVERRIDE { |
- LOG_IF(ERROR, engine_handler_ == NULL) << "There is no engine."; |
- engine_handler_ = NULL; |
+ virtual void UnsetEngine(IBusEngineHandlerInterface* handler) OVERRIDE { |
+ if (engine_handler_ == handler) |
+ engine_handler_ = NULL; |
} |
// IBusEngineService override. |
@@ -486,8 +486,9 @@ class IBusEngineServiceDaemonlessImpl : public IBusEngineService { |
} |
// IBusEngineService override. |
- virtual void UnsetEngine() OVERRIDE { |
- IBusBridge::Get()->SetEngineHandler(NULL); |
+ virtual void UnsetEngine(IBusEngineHandlerInterface* handler) OVERRIDE { |
+ if (IBusBridge::Get()->GetEngineHandler() == handler) |
+ IBusBridge::Get()->SetEngineHandler(NULL); |
} |
// IBusEngineService override. |