summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeng Wu <alexepico@gmail.com>2015-07-29 14:01:08 +0800
committerPeng Wu <alexepico@gmail.com>2015-07-29 14:01:08 +0800
commita13ace8a4b349b878479474915836399cae67599 (patch)
treeca7dc665ddd0342117f67c2e802dccf807c6ae45
parent6901887a0a84b4dafcad480390dd1e45acf89791 (diff)
downloadibus-libzhuyin-a13ace8a4b349b878479474915836399cae67599.tar.gz
ibus-libzhuyin-a13ace8a4b349b878479474915836399cae67599.tar.xz
ibus-libzhuyin-a13ace8a4b349b878479474915836399cae67599.zip
add space show candidates option
-rw-r--r--src/ZYConfig.cc1
-rw-r--r--src/ZYConfig.h2
-rw-r--r--src/ZYZConfig.cc5
-rw-r--r--src/ZYZPhoneticEditor.cc10
4 files changed, 16 insertions, 2 deletions
diff --git a/src/ZYConfig.cc b/src/ZYConfig.cc
index a978da1..fcc717e 100644
--- a/src/ZYConfig.cc
+++ b/src/ZYConfig.cc
@@ -54,6 +54,7 @@ Config::initDefaultValues (void)
m_init_trad_chinese = TRUE;
m_always_input_numbers = FALSE;
+ m_space_show_candidates = FALSE;
m_easy_symbol = TRUE;
m_user_symbol = TRUE;
diff --git a/src/ZYConfig.h b/src/ZYConfig.h
index 6c9b2c7..cba5f78 100644
--- a/src/ZYConfig.h
+++ b/src/ZYConfig.h
@@ -50,6 +50,7 @@ public:
gboolean initFullPunct (void) const { return m_init_full_punct; }
gboolean initTradChinese (void) const { return m_init_trad_chinese; }
gboolean alwaysInputNumbers (void) const { return m_always_input_numbers; }
+ gboolean spaceShowCandidates (void) const { return m_space_show_candidates; }
std::string candidateKeys (void) const { return m_candidate_keys; }
gboolean easySymbol (void) const { return m_easy_symbol; }
@@ -88,6 +89,7 @@ protected:
gboolean m_init_trad_chinese;
gboolean m_always_input_numbers;
+ gboolean m_space_show_candidates;
std::string m_candidate_keys;
diff --git a/src/ZYZConfig.cc b/src/ZYZConfig.cc
index ecf15dc..17a6a34 100644
--- a/src/ZYZConfig.cc
+++ b/src/ZYZConfig.cc
@@ -35,6 +35,7 @@ const gchar * const CONFIG_INIT_FULL_ENGLISH = "fullhalfenglish";
const gchar * const CONFIG_INIT_FULL_PUNCT = "fullhalfpunct";
const gchar * const CONFIG_INIT_TRAD_CHINESE = "traditionalchinese";
const gchar * const CONFIG_ALWAYS_INPUT_NUMBERS = "alwaysinputnum";
+const gchar * const CONFIG_SPACE_SHOW_CANDIDATES = "spaceshowcandidates";
const gchar * const CONFIG_KEYBOARD_LAYOUT = "keyboardlayout";
const gchar * const CONFIG_CANDIDATE_KEYS = "candidatekeys";
@@ -94,6 +95,7 @@ ZhuyinConfig::initDefaultValues (void)
m_init_trad_chinese = TRUE;
m_always_input_numbers = FALSE;
+ m_space_show_candidates = FALSE;
m_candidate_keys = "1234567890";
@@ -185,6 +187,7 @@ ZhuyinConfig::readDefaultValues (void)
m_init_trad_chinese = read (CONFIG_INIT_TRAD_CHINESE, true);
m_always_input_numbers = read (CONFIG_ALWAYS_INPUT_NUMBERS, false);
+ m_space_show_candidates = read (CONFIG_SPACE_SHOW_CANDIDATES, false);
gint layout = read (CONFIG_KEYBOARD_LAYOUT, 0);
m_keyboard_layout = CHEWING_DEFAULT;
@@ -241,6 +244,8 @@ ZhuyinConfig::valueChanged (const std::string &section,
m_init_trad_chinese = normalizeGVariant (value, true);
else if (CONFIG_ALWAYS_INPUT_NUMBERS == name)
m_always_input_numbers = normalizeGVariant (value, false);
+ else if (CONFIG_SPACE_SHOW_CANDIDATES == name)
+ m_space_show_candidates = normalizeGVariant (value, false);
else if (CONFIG_KEYBOARD_LAYOUT == name) {
gint layout = normalizeGVariant (value, 0);
m_keyboard_layout = CHEWING_DEFAULT;
diff --git a/src/ZYZPhoneticEditor.cc b/src/ZYZPhoneticEditor.cc
index b4ed011..fa8ecb6 100644
--- a/src/ZYZPhoneticEditor.cc
+++ b/src/ZYZPhoneticEditor.cc
@@ -153,8 +153,14 @@ PhoneticEditor::processSpace (guint keyval, guint keycode,
return TRUE;
}
- /* use space to show candidates. */
- assert (FALSE);
+ if (m_config.spaceShowCandidates ()) {
+ /* use space to show candidates. */
+ prepareCandidates ();
+ update ();
+ return TRUE;
+ } else {
+ return insert (keyval, keycode, modifiers);
+ }
}
if (STATE_CANDIDATE_SHOWN == m_input_state ||