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

Unified Diff: chrome/browser/chromeos/preferences.cc

Issue 2702393003: [ChromeOS] Expose keyboard remapping to signin screen. (Closed)
Patch Set: Address xiyuan@'s comments. Created 3 years, 10 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/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();
}

Powered by Google App Engine
This is Rietveld 408576698