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; |