diff options
author | yusukes@google.com <yusukes@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-04 06:33:55 +0000 |
---|---|---|
committer | yusukes@google.com <yusukes@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-04 06:33:55 +0000 |
commit | 33444cfb4a735d68015d7b1d8b791d7fede884d2 (patch) | |
tree | f637be3a9b636bccdb0001dc6d58338ea3d30c94 | |
parent | c2d6600195ff762bece097c31060caa7d8eb9e31 (diff) | |
download | chromium_src-33444cfb4a735d68015d7b1d8b791d7fede884d2.zip chromium_src-33444cfb4a735d68015d7b1d8b791d7fede884d2.tar.gz chromium_src-33444cfb4a735d68015d7b1d8b791d7fede884d2.tar.bz2 |
Make hanja key customizable.
BUG=chromium-os:18127
TEST=manual
Review URL: http://codereview.chromium.org/7461114
Patch from Seigo Nonaka <nona@chromium.org>.
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@95391 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/chromeos/language_preferences.cc | 8 | ||||
-rw-r--r-- | chrome/browser/chromeos/language_preferences.h | 7 | ||||
-rw-r--r-- | chrome/browser/chromeos/preferences.cc | 11 | ||||
-rw-r--r-- | chrome/browser/chromeos/preferences.h | 1 | ||||
-rw-r--r-- | chrome/common/pref_names.cc | 2 | ||||
-rw-r--r-- | chrome/common/pref_names.h | 1 |
6 files changed, 27 insertions, 3 deletions
diff --git a/chrome/browser/chromeos/language_preferences.cc b/chrome/browser/chromeos/language_preferences.cc index aece877..cfefc9d 100644 --- a/chrome/browser/chromeos/language_preferences.cc +++ b/chrome/browser/chromeos/language_preferences.cc @@ -26,7 +26,7 @@ const char kHotkeyNextEngineInMenu[] = const char kHotkeyPreviousEngine[] = "Control+space"; // --------------------------------------------------------------------------- -// For Traditional Chinese input method (ibus-chewing) +// For Traditional Chinese input method (ibus-mozc-chewing) // --------------------------------------------------------------------------- const char kChewingSectionName[] = "engine/Chewing"; @@ -139,7 +139,7 @@ const LanguageMultipleChoicePreference<int> kChewingHsuSelKeyType = { }; // --------------------------------------------------------------------------- -// For Korean input method (ibus-hangul) +// For Korean input method (ibus-mozc-hangul) // --------------------------------------------------------------------------- const char kHangulSectionName[] = "engine/Hangul"; const char kHangulKeyboardConfigName[] = "HangulKeyboard"; @@ -148,6 +148,10 @@ const char kHangulHanjaKeysConfigName[] = "HanjaKeys"; // TODO: HanjaKeys are not configurable yet (and we're not sure if it should.) const char kHangulHanjaKeys[] = "F9,Hangul_Hanja,Control+9"; +// Mozc-hangul treats Hangul_Hanja key as hanja key event even if it is not set. +const char kHangulHanjaBindingKeysConfigName[] = "HanjaKeyBindings"; +const char kHangulHanjaBindingKeys[] = "F9,Ctrl 9"; + const HangulKeyboardNameIDPair kHangulKeyboardNameIDPairs[] = { // We have to sync the |keyboard_id|s with those in // ibus-hangul/files/setup/main.py. diff --git a/chrome/browser/chromeos/language_preferences.h b/chrome/browser/chromeos/language_preferences.h index 16ef9c1..33e5ede 100644 --- a/chrome/browser/chromeos/language_preferences.h +++ b/chrome/browser/chromeos/language_preferences.h @@ -90,13 +90,18 @@ const size_t kNumChewingMultipleChoicePrefs = 2; extern const LanguageMultipleChoicePreference<int> kChewingHsuSelKeyType; // --------------------------------------------------------------------------- -// For Korean input method (ibus-hangul) +// For Korean input method (ibus-mozc-hangul) // --------------------------------------------------------------------------- extern const char kHangulSectionName[]; extern const char kHangulKeyboardConfigName[]; extern const char kHangulHanjaKeysConfigName[]; extern const char kHangulHanjaKeys[]; +// Following configuration is for mozc-hangul and same meaning of +// kHangulHanjaKeys. +extern const char kHangulHanjaBindingKeysConfigName[]; +extern const char kHangulHanjaBindingKeys[]; + struct HangulKeyboardNameIDPair { int message_id; const char* keyboard_id; diff --git a/chrome/browser/chromeos/preferences.cc b/chrome/browser/chromeos/preferences.cc index 8c83f06..27e399b 100644 --- a/chrome/browser/chromeos/preferences.cc +++ b/chrome/browser/chromeos/preferences.cc @@ -114,6 +114,10 @@ void Preferences::RegisterUserPrefs(PrefService* prefs) { language_prefs::kHangulHanjaKeys, // Don't sync the pref as it's not user-configurable PrefService::UNSYNCABLE_PREF); + prefs->RegisterStringPref(prefs::kLanguageHangulHanjaBindingKeys, + language_prefs::kHangulHanjaBindingKeys, + // Don't sync the pref as it's not user-configurable + PrefService::UNSYNCABLE_PREF); for (size_t i = 0; i < language_prefs::kNumPinyinBooleanPrefs; ++i) { prefs->RegisterBooleanPref( language_prefs::kPinyinBooleanPrefs[i].pref_name, @@ -232,6 +236,8 @@ void Preferences::Init(PrefService* prefs) { language_hangul_keyboard_.Init(prefs::kLanguageHangulKeyboard, prefs, this); language_hangul_hanja_keys_.Init( prefs::kLanguageHangulHanjaKeys, prefs, this); + language_hangul_hanja_binding_keys_.Init( + prefs::kLanguageHangulHanjaBindingKeys, prefs, this); for (size_t i = 0; i < language_prefs::kNumPinyinBooleanPrefs; ++i) { language_pinyin_boolean_prefs_[i].Init( language_prefs::kPinyinBooleanPrefs[i].pref_name, prefs, this); @@ -399,6 +405,11 @@ void Preferences::NotifyPrefChanged(const std::string* pref_name) { language_prefs::kHangulHanjaKeysConfigName, language_hangul_hanja_keys_.GetValue()); } + if (!pref_name || *pref_name == prefs::kLanguageHangulHanjaBindingKeys) { + SetLanguageConfigString(language_prefs::kHangulSectionName, + language_prefs::kHangulHanjaBindingKeysConfigName, + language_hangul_hanja_binding_keys_.GetValue()); + } for (size_t i = 0; i < language_prefs::kNumPinyinBooleanPrefs; ++i) { if (!pref_name || *pref_name == language_prefs::kPinyinBooleanPrefs[i].pref_name) { diff --git a/chrome/browser/chromeos/preferences.h b/chrome/browser/chromeos/preferences.h index db280aa..1446aba 100644 --- a/chrome/browser/chromeos/preferences.h +++ b/chrome/browser/chromeos/preferences.h @@ -102,6 +102,7 @@ class Preferences : public NotificationObserver { IntegerPrefMember language_chewing_integer_prefs_[ language_prefs::kNumChewingIntegerPrefs]; StringPrefMember language_hangul_keyboard_; + StringPrefMember language_hangul_hanja_binding_keys_; StringPrefMember language_hangul_hanja_keys_; BooleanPrefMember language_pinyin_boolean_prefs_[ language_prefs::kNumPinyinBooleanPrefs]; diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc index 3441f63..126d0ce 100644 --- a/chrome/common/pref_names.cc +++ b/chrome/common/pref_names.cc @@ -379,6 +379,8 @@ const char kLanguageChewingHsuSelKeyType[] = // A string pref which determines the keyboard layout for Hangul input method. const char kLanguageHangulKeyboard[] = "settings.language.hangul_keyboard"; const char kLanguageHangulHanjaKeys[] = "settings.language.hangul_hanja_keys"; +const char kLanguageHangulHanjaBindingKeys[] = + "settings.language.hangul_hanja_binding_keys"; // A boolean prefs for ibus-pinyin Chinese input method. const char kLanguagePinyinCorrectPinyin[] = diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h index 7dc1605..6da18fc 100644 --- a/chrome/common/pref_names.h +++ b/chrome/common/pref_names.h @@ -125,6 +125,7 @@ extern const char kLanguageChewingKeyboardType[]; extern const char kLanguageChewingSelKeys[]; extern const char kLanguageChewingHsuSelKeyType[]; extern const char kLanguageHangulKeyboard[]; +extern const char kLanguageHangulHanjaBindingKeys[]; extern const char kLanguageHangulHanjaKeys[]; extern const char kLanguagePinyinCorrectPinyin[]; extern const char kLanguagePinyinFuzzyPinyin[]; |