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

Unified Diff: chrome/browser/chromeos/base/locale_util.cc

Issue 133273032: Guest Mode: input method should default to the underlying latin keyboard layout. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase. Use EnableInputMethod instead of EnableInputMethods. Created 6 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 | « chrome/browser/chromeos/base/locale_util.h ('k') | chrome/browser/chromeos/chrome_browser_main_chromeos.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/chromeos/base/locale_util.cc
diff --git a/chrome/browser/chromeos/base/locale_util.cc b/chrome/browser/chromeos/base/locale_util.cc
index 4a931fe80fb001d39364d293ea9375debfa57290..176a1050fc756d22b3a2d6ac0e2936e023eab79e 100644
--- a/chrome/browser/chromeos/base/locale_util.cc
+++ b/chrome/browser/chromeos/base/locale_util.cc
@@ -4,6 +4,8 @@
#include "chrome/browser/chromeos/base/locale_util.h"
+#include <vector>
+
#include "chrome/browser/browser_process.h"
#include "chrome/browser/chromeos/input_method/input_method_util.h"
#include "chromeos/ime/input_method_manager.h"
@@ -18,16 +20,19 @@ namespace {
struct SwitchLanguageData {
SwitchLanguageData(const std::string& locale,
const bool enableLocaleKeyboardLayouts,
+ const bool login_layouts_only,
scoped_ptr<locale_util::SwitchLanguageCallback> callback)
: callback(callback.Pass()),
locale(locale),
enableLocaleKeyboardLayouts(enableLocaleKeyboardLayouts),
+ login_layouts_only(login_layouts_only),
success(false) {}
scoped_ptr<locale_util::SwitchLanguageCallback> callback;
const std::string locale;
const bool enableLocaleKeyboardLayouts;
+ const bool login_layouts_only;
std::string loaded_locale;
bool success;
};
@@ -58,9 +63,21 @@ void FinishSwitchLanguage(scoped_ptr<SwitchLanguageData> data) {
// use may not be supported by the new locale (3rd parameter).
input_method::InputMethodManager* manager =
input_method::InputMethodManager::Get();
- manager->EnableLayouts(
+ manager->EnableLoginLayouts(
data->locale,
- manager->GetInputMethodUtil()->GetHardwareInputMethodId());
+ manager->GetInputMethodUtil()->GetHardwareLoginInputMethodId());
+ if (!data->login_layouts_only) {
+ // Enable all the other layouts
+ std::vector<std::string> candidates;
+ input_method::InputMethodUtil* util = manager->GetInputMethodUtil();
+ // Add input methods associated with the language.
+ util->GetInputMethodIdsFromLanguageCode(
+ data->locale, input_method::kKeyboardLayoutsOnly, &candidates);
+ for (std::vector<std::string>::const_iterator i = candidates.begin();
+ i != candidates.end();
+ ++i)
+ manager->EnableInputMethod(*i);
+ }
}
}
gfx::PlatformFontPango::ReloadDefaultFont();
@@ -73,11 +90,15 @@ void FinishSwitchLanguage(scoped_ptr<SwitchLanguageData> data) {
namespace locale_util {
void SwitchLanguage(const std::string& locale,
- bool enableLocaleKeyboardLayouts,
+ const bool enableLocaleKeyboardLayouts,
+ const bool login_layouts_only,
scoped_ptr<SwitchLanguageCallback> callback) {
DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
- scoped_ptr<SwitchLanguageData> data(new SwitchLanguageData(
- locale, enableLocaleKeyboardLayouts, callback.Pass()));
+ scoped_ptr<SwitchLanguageData> data(
+ new SwitchLanguageData(locale,
+ enableLocaleKeyboardLayouts,
+ login_layouts_only,
+ callback.Pass()));
base::Closure reloader(
base::Bind(&SwitchLanguageDoReloadLocale, base::Unretained(data.get())));
content::BrowserThread::PostBlockingPoolTaskAndReply(
« no previous file with comments | « chrome/browser/chromeos/base/locale_util.h ('k') | chrome/browser/chromeos/chrome_browser_main_chromeos.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698