summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeng Wu <alexepico@gmail.com>2014-07-11 13:53:37 +0800
committerPeng Wu <alexepico@gmail.com>2014-07-11 13:53:37 +0800
commit11ac7817f172fb26b232d68228ba18407b3a9bb1 (patch)
tree46352318ca6d4c05235b0fc8e817ec264b6ac300
parent8ce230d2f49c9be6698e686b0395495be1e413bf (diff)
downloadibus-libzhuyin-11ac7817f172fb26b232d68228ba18407b3a9bb1.tar.gz
ibus-libzhuyin-11ac7817f172fb26b232d68228ba18407b3a9bb1.tar.xz
ibus-libzhuyin-11ac7817f172fb26b232d68228ba18407b3a9bb1.zip
write method processSpace
-rw-r--r--src/ZYZPhoneticEditor.cc18
-rw-r--r--src/ZYZPhoneticEditor.h1
-rw-r--r--src/ZYZPinyinEditor.cc4
-rw-r--r--src/ZYZZhuyinEditor.cc4
4 files changed, 27 insertions, 0 deletions
diff --git a/src/ZYZPhoneticEditor.cc b/src/ZYZPhoneticEditor.cc
index a6c8e4f..60eab16 100644
--- a/src/ZYZPhoneticEditor.cc
+++ b/src/ZYZPhoneticEditor.cc
@@ -95,6 +95,24 @@ PhoneticEditor::processEnter (guint keyval, guint keycode,
}
gboolean
+PhoneticEditor::processSpace (guint keyval, guint keycode,
+ guint modifiers)
+{
+ if (IBUS_space != keyval && IBUS_KP_Space != keyval)
+ return FALSE;
+
+ if (cmshm_filter (modifiers) != 0)
+ return TRUE;
+
+ selectCandidate (m_lookup_table.cursorPos ());
+
+ updateZhuyin ();
+ update ();
+ return TRUE;
+}
+
+
+gboolean
PhoneticEditor::processFunctionKey (guint keyval, guint keycode,
guint modifiers)
{
diff --git a/src/ZYZPhoneticEditor.h b/src/ZYZPhoneticEditor.h
index 7ea3a58..d99c9da 100644
--- a/src/ZYZPhoneticEditor.h
+++ b/src/ZYZPhoneticEditor.h
@@ -57,6 +57,7 @@ public:
virtual void candidateClicked (guint index, guint button, guint state);
virtual gboolean processKeyEvent (guint keyval, guint keycode, guint modifiers);
virtual gboolean processEnter (guint keyval, guint keycode, guint modifiers);
+ virtual gboolean processSpace (guint keyval, guint keycode, guint modifiers);
virtual gboolean processFunctionKey (guint keyval, guint keycode, guint modifiers);
virtual gboolean processShowCandidateKey (guint keyval, guint keycode, guint modifiers);
virtual gboolean processCandidateKey (guint keyval, guint keycode, guint modifiers);
diff --git a/src/ZYZPinyinEditor.cc b/src/ZYZPinyinEditor.cc
index a5113ee..13a279a 100644
--- a/src/ZYZPinyinEditor.cc
+++ b/src/ZYZPinyinEditor.cc
@@ -220,6 +220,10 @@ PinyinEditor::processKeyEvent (guint keyval, guint keycode, guint modifiers)
STATE_BOPOMOFO_SYMBOL_SHOWN == m_input_state /* ||
STATE_USER_SYMBOL_LIST_ALL == m_input_state ||
STATE_USER_SYMBOL_SHOWN == m_input_state */) {
+
+ if (processSpace (keyval, keycode, modifiers))
+ return TRUE;
+
if (processCandidateKey (keyval, keycode, modifiers))
return TRUE;
}
diff --git a/src/ZYZZhuyinEditor.cc b/src/ZYZZhuyinEditor.cc
index c0b4f8e..bd84e37 100644
--- a/src/ZYZZhuyinEditor.cc
+++ b/src/ZYZZhuyinEditor.cc
@@ -233,6 +233,10 @@ ZhuyinEditor::processKeyEvent (guint keyval, guint keycode, guint modifiers)
STATE_BOPOMOFO_SYMBOL_SHOWN == m_input_state /* ||
STATE_USER_SYMBOL_LIST_ALL == m_input_state ||
STATE_USER_SYMBOL_SHOWN == m_input_state */) {
+
+ if (processSpace (keyval, keycode, modifiers))
+ return TRUE;
+
if (processCandidateKey (keyval, keycode, modifiers))
return TRUE;
}