summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoryusukes@google.com <yusukes@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-08-04 06:33:55 +0000
committeryusukes@google.com <yusukes@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-08-04 06:33:55 +0000
commit33444cfb4a735d68015d7b1d8b791d7fede884d2 (patch)
treef637be3a9b636bccdb0001dc6d58338ea3d30c94
parentc2d6600195ff762bece097c31060caa7d8eb9e31 (diff)
downloadchromium_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.cc8
-rw-r--r--chrome/browser/chromeos/language_preferences.h7
-rw-r--r--chrome/browser/chromeos/preferences.cc11
-rw-r--r--chrome/browser/chromeos/preferences.h1
-rw-r--r--chrome/common/pref_names.cc2
-rw-r--r--chrome/common/pref_names.h1
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[];