| Index: chrome/browser/chromeos/preferences.cc
|
| diff --git a/chrome/browser/chromeos/preferences.cc b/chrome/browser/chromeos/preferences.cc
|
| index 1103be60c673945fd161be38d3f3a0915598699e..04c0cd8c6a8bcdb0e4b0b1776f32211d89fcf755 100644
|
| --- a/chrome/browser/chromeos/preferences.cc
|
| +++ b/chrome/browser/chromeos/preferences.cc
|
| @@ -57,8 +57,21 @@
|
|
|
| namespace chromeos {
|
|
|
| +namespace {
|
| +
|
| static const char kFallbackInputMethodLocale[] = "en-US";
|
|
|
| +// The keyboard preferences that determine how we remap modifier keys. These
|
| +// preferences will be saved in global user preferences dictionary so that they
|
| +// can be used on signin screen.
|
| +const char* const kLanguageRemapPrefs[] = {
|
| + prefs::kLanguageRemapSearchKeyTo, prefs::kLanguageRemapControlKeyTo,
|
| + prefs::kLanguageRemapAltKeyTo, prefs::kLanguageRemapCapsLockKeyTo,
|
| + prefs::kLanguageRemapEscapeKeyTo, prefs::kLanguageRemapBackspaceKeyTo,
|
| + prefs::kLanguageRemapDiamondKeyTo};
|
| +
|
| +} // namespace
|
| +
|
| Preferences::Preferences()
|
| : prefs_(NULL),
|
| input_method_manager_(input_method::InputMethodManager::Get()),
|
| @@ -397,6 +410,8 @@ void Preferences::InitUserPrefs(sync_preferences::PrefServiceSyncable* prefs) {
|
| pref_change_registrar_.Init(prefs);
|
| pref_change_registrar_.Add(prefs::kResolveTimezoneByGeolocation, callback);
|
| pref_change_registrar_.Add(prefs::kUse24HourClock, callback);
|
| + for (auto remap_pref : kLanguageRemapPrefs)
|
| + pref_change_registrar_.Add(remap_pref, callback);
|
| }
|
|
|
| void Preferences::Init(Profile* profile, const user_manager::User* user) {
|
| @@ -712,6 +727,14 @@ void Preferences::ApplyPreferences(ApplyReason reason,
|
| prefs::kUse24HourClock, value);
|
| }
|
|
|
| + for (auto remap_pref : kLanguageRemapPrefs) {
|
| + if (pref_name == remap_pref || reason != REASON_ACTIVE_USER_CHANGED) {
|
| + const int value = prefs_->GetInteger(remap_pref);
|
| + user_manager::known_user::SetIntegerPref(user_->GetAccountId(),
|
| + remap_pref, value);
|
| + }
|
| + }
|
| +
|
| system::InputDeviceSettings::Get()->UpdateTouchDevicesStatusFromPrefs();
|
| }
|
|
|
|
|