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

Unified Diff: ui/base/ime/input_method_ibus.cc

Issue 11956008: Move SetCursorLocation bypass code. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix unittests: add TextInputTestSupport initialzation Created 7 years, 11 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 | « ui/base/ime/input_method_ibus.h ('k') | ui/base/ime/input_method_ibus_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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;
« no previous file with comments | « ui/base/ime/input_method_ibus.h ('k') | ui/base/ime/input_method_ibus_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698