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

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 unit tests 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
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..5f1b04dce1ed3432e0a539185a4585a1b3f35f04 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"
@@ -80,8 +79,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 +98,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 +156,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 +216,15 @@ void InputMethodIBus::OnCaretBoundsChanged(const TextInputClient* client) {
composition_head = rect;
}
- // This function runs asynchronously.
- ibus_client_->SetCursorLocation(rect, composition_head);
+ chromeos::ibus::Rect rect_ibus(rect.x(),
+ rect.y(),
+ rect.width(),
+ rect.height());
satorux1 2013/01/29 05:16:08 maybe: chromeos::ibus::Rect rect_ibus = chromeos
Seigo Nonaka 2013/01/30 06:00:07 We can't introduce FromGfxRect function into chrom
+ chromeos::ibus::Rect composition_head_ibus(composition_head.x(),
+ composition_head.y(),
+ composition_head.width(),
+ composition_head.height());
+ GetInputContextClient()->SetCursorLocation(rect_ibus, composition_head_ibus);
ui::Range text_range;
ui::Range selection_range;

Powered by Google App Engine
This is Rietveld 408576698