Index: chromeos/dbus/ibus/ibus_panel_service.cc |
diff --git a/chromeos/dbus/ibus/ibus_panel_service.cc b/chromeos/dbus/ibus/ibus_panel_service.cc |
index 644a937122c76e712986980df825796a90345bd5..95bee520d65e981055e0aa597a11671d5cd9b2b2 100644 |
--- a/chromeos/dbus/ibus/ibus_panel_service.cc |
+++ b/chromeos/dbus/ibus/ibus_panel_service.cc |
@@ -8,6 +8,7 @@ |
#include "base/bind.h" |
#include "base/callback.h" |
#include "chromeos/dbus/ibus/ibus_constants.h" |
+#include "chromeos/dbus/ibus/ibus_input_context_client.h" |
#include "chromeos/dbus/ibus/ibus_lookup_table.h" |
#include "chromeos/dbus/ibus/ibus_property.h" |
#include "chromeos/dbus/ibus/ibus_text.h" |
@@ -23,7 +24,8 @@ namespace ibus { |
class IBusPanelServiceImpl : public IBusPanelService { |
public: |
- explicit IBusPanelServiceImpl(dbus::Bus* bus) |
+ explicit IBusPanelServiceImpl(dbus::Bus* bus, |
+ IBusInputContextClient* input_context) |
: bus_(bus), |
candidate_window_handler_(NULL), |
property_handler_(NULL), |
@@ -124,6 +126,10 @@ class IBusPanelServiceImpl : public IBusPanelService { |
ibus::panel::kServiceName, |
base::Bind(&IBusPanelServiceImpl::OnRequestOwnership, |
weak_ptr_factory_.GetWeakPtr())); |
+ |
+ input_context->SetSetCursorLocationHandler( |
+ base::Bind(&IBusPanelServiceImpl::SetCursorLocation, |
+ weak_ptr_factory_.GetWeakPtr())); |
} |
virtual ~IBusPanelServiceImpl() { |
@@ -338,6 +344,11 @@ class IBusPanelServiceImpl : public IBusPanelService { |
response_sender.Run(response); |
} |
+ void SetCursorLocation(const ibus::Rect& cursor_location, |
+ const ibus::Rect& composition_head) { |
+ // TODO(nona): implement this function. |
+ } |
+ |
// Handles FocusIn, FocusOut, StateChanged method calls from IBus, and ignores |
// them. |
void NoOperation(dbus::MethodCall* method_call, |
@@ -406,10 +417,12 @@ IBusPanelService::~IBusPanelService() { |
} |
// static |
-IBusPanelService* IBusPanelService::Create(DBusClientImplementationType type, |
- dbus::Bus* bus) { |
+IBusPanelService* IBusPanelService::Create( |
+ DBusClientImplementationType type, |
+ dbus::Bus* bus, |
+ IBusInputContextClient* input_context) { |
if (type == REAL_DBUS_CLIENT_IMPLEMENTATION) { |
- return new IBusPanelServiceImpl(bus); |
+ return new IBusPanelServiceImpl(bus, input_context); |
} else { |
return new IBusPanelServiceStubImpl(); |
} |