Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(53)

Unified Diff: chromeos/dbus/ibus/ibus_engine_service.cc

Issue 10835003: Revise IBusEngineService. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 8 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chromeos/dbus/ibus/ibus_engine_service.h ('k') | chromeos/dbus/ibus/ibus_engine_service_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 85cace4482c49d0eb8fd8a3a20d31aa6b870b380..dcfee8369d4ea6e88901e747d55754f2a157ef44 100644
--- a/chromeos/dbus/ibus/ibus_engine_service.cc
+++ b/chromeos/dbus/ibus/ibus_engine_service.cc
@@ -213,6 +213,14 @@ class IBusEngineServiceImpl : public IBusEngineService {
exported_object_->SendSignal(&signal);
}
+ virtual void CommitText(const std::string& text) OVERRIDE {
+ dbus::Signal signal(ibus::engine::kServiceInterface,
+ ibus::engine::kCommitTextSignal);
+ dbus::MessageWriter writer(&signal);
+ ibus::AppendStringAsIBusText(text, &writer);
+ exported_object_->SendSignal(&signal);
+ }
+
private:
// Handles FocusIn method call from ibus-daemon.
void FocusIn(dbus::MethodCall* method_call,
@@ -355,8 +363,18 @@ class IBusEngineServiceImpl : public IBusEngineService {
return;
}
DCHECK(engine_handler_.get());
- bool consume = engine_handler_->ProcessKeyEvent(keysym, keycode, state);
- dbus::Response* response = dbus::Response::FromMethodCall(method_call);
+ engine_handler_->ProcessKeyEvent(
+ keysym, keycode, state,
+ base::Bind(&IBusEngineServiceImpl::KeyEventDone,
+ weak_ptr_factory_.GetWeakPtr(),
+ base::Unretained(
+ dbus::Response::FromMethodCall(method_call)),
+ response_sender));
+ }
+
+ void KeyEventDone(dbus::Response* response,
+ const dbus::ExportedObject::ResponseSender& response_sender,
+ bool consume) {
dbus::MessageWriter writer(response);
writer.AppendBool(consume);
response_sender.Run(response);
@@ -464,6 +482,8 @@ class IBusEngineServiceStubImpl : public IBusEngineService {
virtual void ForwardKeyEvent(uint32 keyval, uint32 keycode,
uint32 state) OVERRIDE {}
virtual void RequireSurroundingText() OVERRIDE {}
+ virtual void CommitText(const std::string& text) OVERRIDE {}
+
private:
DISALLOW_COPY_AND_ASSIGN(IBusEngineServiceStubImpl);
};
« no previous file with comments | « chromeos/dbus/ibus/ibus_engine_service.h ('k') | chromeos/dbus/ibus/ibus_engine_service_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698