diff options
-rw-r--r-- | src/ZYZPhoneticEditor.cc | 18 | ||||
-rw-r--r-- | src/ZYZPhoneticEditor.h | 1 | ||||
-rw-r--r-- | src/ZYZPinyinEditor.cc | 4 | ||||
-rw-r--r-- | src/ZYZZhuyinEditor.cc | 4 |
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; } |