| Index: ui/base/ime/input_method_ibus.cc
|
| diff --git a/ui/base/ime/input_method_ibus.cc b/ui/base/ime/input_method_ibus.cc
|
| index 5d3fd4e4026d6ffab50d77b3248c6c5b184638b9..2d4459fedea3589f4427ead05330fe395231dcc6 100644
|
| --- a/ui/base/ime/input_method_ibus.cc
|
| +++ b/ui/base/ime/input_method_ibus.cc
|
| @@ -28,7 +28,6 @@
|
| #include "chromeos/dbus/ibus/ibus_text.h"
|
| #include "ui/base/events/event_constants.h"
|
| #include "ui/base/events/event_utils.h"
|
| -#include "ui/base/ime/ibus_client.h"
|
| #include "ui/base/ime/text_input_client.h"
|
| #include "ui/base/keycodes/keyboard_code_conversion.h"
|
| #include "ui/base/keycodes/keyboard_code_conversion_x.h"
|
| @@ -73,6 +72,11 @@ chromeos::IBusInputContextClient* GetInputContextClient() {
|
| return chromeos::DBusThreadManager::Get()->GetIBusInputContextClient();
|
| }
|
|
|
| +// Converts gfx::Rect to ibus::Rect.
|
| +chromeos::ibus::Rect GfxRectToIBusRect(const gfx::Rect& rect) {
|
| + return chromeos::ibus::Rect(rect.x(), rect.y(), rect.width(), rect.height());
|
| +}
|
| +
|
| } // namespace
|
|
|
| namespace ui {
|
| @@ -80,8 +84,7 @@ namespace ui {
|
| // InputMethodIBus implementation -----------------------------------------
|
| InputMethodIBus::InputMethodIBus(
|
| internal::InputMethodDelegate* delegate)
|
| - : ibus_client_(new internal::IBusClient),
|
| - input_context_state_(INPUT_CONTEXT_STOP),
|
| + : input_context_state_(INPUT_CONTEXT_STOP),
|
| create_input_context_fail_count_(0),
|
| context_focused_(false),
|
| composing_text_(false),
|
| @@ -100,15 +103,6 @@ InputMethodIBus::~InputMethodIBus() {
|
| GetInputContextClient()->SetInputContextHandler(NULL);
|
| }
|
|
|
| -void InputMethodIBus::set_ibus_client(
|
| - scoped_ptr<internal::IBusClient> new_client) {
|
| - ibus_client_.swap(new_client);
|
| -}
|
| -
|
| -internal::IBusClient* InputMethodIBus::ibus_client() const {
|
| - return ibus_client_.get();
|
| -}
|
| -
|
| void InputMethodIBus::OnFocus() {
|
| InputMethodBase::OnFocus();
|
| UpdateContextFocusState();
|
| @@ -167,8 +161,8 @@ void InputMethodIBus::DispatchKeyEvent(const base::NativeEvent& native_event) {
|
| // enabled, so that ibus can have a chance to enable the |context_|.
|
| if (!context_focused_ ||
|
| GetTextInputType() == TEXT_INPUT_TYPE_PASSWORD ||
|
| - ibus_client_->GetInputMethodType() ==
|
| - internal::IBusClient::INPUT_METHOD_XKB_LAYOUT) {
|
| + !GetInputContextClient() ||
|
| + GetInputContextClient()->IsXKBLayout()) {
|
| if (native_event->type == KeyPress)
|
| ProcessUnfilteredKeyPressEvent(native_event, ibus_keyval);
|
| else
|
| @@ -227,8 +221,9 @@ void InputMethodIBus::OnCaretBoundsChanged(const TextInputClient* client) {
|
| composition_head = rect;
|
| }
|
|
|
| - // This function runs asynchronously.
|
| - ibus_client_->SetCursorLocation(rect, composition_head);
|
| + GetInputContextClient()->SetCursorLocation(
|
| + GfxRectToIBusRect(rect),
|
| + GfxRectToIBusRect(composition_head));
|
|
|
| ui::Range text_range;
|
| ui::Range selection_range;
|
|
|