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

Unified Diff: chrome/browser/chromeos/input_method/input_method_manager_impl.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: chrome/browser/chromeos/input_method/input_method_manager_impl.cc
diff --git a/chrome/browser/chromeos/input_method/input_method_manager_impl.cc b/chrome/browser/chromeos/input_method/input_method_manager_impl.cc
index 93f086ab183e9096a6911e423c89feac172b9f83..5c8f1e1da45337d7241a5dec464c35afffd811a9 100644
--- a/chrome/browser/chromeos/input_method/input_method_manager_impl.cc
+++ b/chrome/browser/chromeos/input_method/input_method_manager_impl.cc
@@ -15,6 +15,8 @@
#include "chrome/browser/chromeos/input_method/input_method_engine_ibus.h"
#include "chrome/browser/chromeos/input_method/xkeyboard.h"
#include "chrome/browser/chromeos/language_preferences.h"
+#include "chromeos/dbus/dbus_thread_manager.h"
+#include "chromeos/dbus/ibus/ibus_input_context_client.h"
#include "third_party/icu/public/common/unicode/uloc.h"
#include "ui/base/accelerators/accelerator.h"
@@ -251,6 +253,8 @@ void InputMethodManagerImpl::ChangeInputMethodInternal(
}
}
+ IBusInputContextClient* input_context =
+ chromeos::DBusThreadManager::Get()->GetIBusInputContextClient();
if (InputMethodUtil::IsKeyboardLayout(input_method_id_to_switch)) {
FOR_EACH_OBSERVER(InputMethodManager::Observer,
observers_,
@@ -266,8 +270,12 @@ void InputMethodManagerImpl::ChangeInputMethodInternal(
} else {
ibus_controller_->ChangeInputMethod(current_input_method_id);
}
+ if (input_context)
+ input_context->SetIsXKBLayout(true);
} else {
ibus_controller_->ChangeInputMethod(input_method_id_to_switch);
+ if (input_context)
+ input_context->SetIsXKBLayout(false);
}
if (current_input_method_.id() != input_method_id_to_switch) {
@@ -564,6 +572,13 @@ void InputMethodManagerImpl::OnConnected() {
if (!Contains(filtered_extension_imes_, ite->first))
ite->second->OnConnected();
}
+
+ const bool is_xkb_layout =
+ InputMethodUtil::IsKeyboardLayout(current_input_method_.id());
+ IBusInputContextClient* input_context =
+ chromeos::DBusThreadManager::Get()->GetIBusInputContextClient();
+ DCHECK(input_context);
+ input_context->SetIsXKBLayout(is_xkb_layout);
}
void InputMethodManagerImpl::OnDisconnected() {

Powered by Google App Engine
This is Rietveld 408576698