| 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();
|
| }
|
|
|