diff options
-rw-r--r-- | src/ZYZPhoneticEditor.cc | 8 | ||||
-rw-r--r-- | src/ZYZPhoneticEditor.h | 2 | ||||
-rw-r--r-- | src/ZYZPinyinEditor.cc | 6 | ||||
-rw-r--r-- | src/ZYZZhuyinEditor.cc | 8 |
4 files changed, 13 insertions, 11 deletions
diff --git a/src/ZYZPhoneticEditor.cc b/src/ZYZPhoneticEditor.cc index 5c95a22..9157453 100644 --- a/src/ZYZPhoneticEditor.cc +++ b/src/ZYZPhoneticEditor.cc @@ -942,14 +942,15 @@ PhoneticEditor::getZhuyinCursor (void) } gboolean -PhoneticEditor::insertSymbol (guint keyval) +PhoneticEditor::insertSymbol (guint keyval, guint keycode, guint modifiers) { /* for symbols. */ if (is_full_width_symbol (keyval)) { if (is_special_symbol (keyval)) { String choice = keyval; - if (m_props.modeFullWidth ()) + if (m_props.modeFullWidth () || + (modifiers & IBUS_SHIFT_MASK)) assert (convert_special_symbol (keyval, choice)); String lookup; @@ -962,7 +963,8 @@ PhoneticEditor::insertSymbol (guint keyval) return TRUE; } - if (m_props.modeFullWidth ()) { + if (m_props.modeFullWidth () || + (modifiers & IBUS_SHIFT_MASK)) { String choice; assert (convert_full_width_symbol (keyval, choice)); diff --git a/src/ZYZPhoneticEditor.h b/src/ZYZPhoneticEditor.h index 1f94bb0..73edabf 100644 --- a/src/ZYZPhoneticEditor.h +++ b/src/ZYZPhoneticEditor.h @@ -74,7 +74,7 @@ public: virtual void updateLookupTableLabel (); virtual gboolean fillLookupTableByPage (); - virtual gboolean insertSymbol (guint keyval); + virtual gboolean insertSymbol (guint keyval, guint keycode, guint modifiers); virtual gboolean insertNumbers (guint keyval); protected: diff --git a/src/ZYZPinyinEditor.cc b/src/ZYZPinyinEditor.cc index 591518e..3574391 100644 --- a/src/ZYZPinyinEditor.cc +++ b/src/ZYZPinyinEditor.cc @@ -187,9 +187,9 @@ gboolean PinyinEditor::insert (guint keyval, guint keycode, guint modifiers) { /* let client applications to handle shortcut key event */ - modifiers = cmshm_filter (modifiers); + modifiers = scmshm_filter (modifiers); - if (modifiers != 0 && m_text.empty ()) + if (cmshm_filter (modifiers) != 0 && m_text.empty ()) return FALSE; if (IS_PINYIN (keyval)) { @@ -200,7 +200,7 @@ PinyinEditor::insert (guint keyval, guint keycode, guint modifiers) return TRUE; } - if (insertSymbol (keyval)) { + if (insertSymbol (keyval, keycode, modifiers)) { updateZhuyin (); update (); return TRUE; diff --git a/src/ZYZZhuyinEditor.cc b/src/ZYZZhuyinEditor.cc index 2c1ce9e..ea75809 100644 --- a/src/ZYZZhuyinEditor.cc +++ b/src/ZYZZhuyinEditor.cc @@ -195,9 +195,9 @@ gboolean ZhuyinEditor::insert (guint keyval, guint keycode, guint modifiers) { /* let client applications to handle shortcut key event */ - modifiers = cmshm_filter (modifiers); + modifiers = scmshm_filter (modifiers); - if (modifiers != 0 && m_text.empty ()) + if (cmshm_filter(modifiers) != 0 && m_text.empty ()) return FALSE; gchar ** symbols = NULL; @@ -211,7 +211,7 @@ ZhuyinEditor::insert (guint keyval, guint keycode, guint modifiers) return TRUE; } - if (insertSymbol (keyval)) { + if (insertSymbol (keyval, keycode, modifiers)) { updateZhuyin (); update (); return TRUE; @@ -264,7 +264,7 @@ ZhuyinEditor::processSpace (guint keyval, guint keycode, guint modifiers) if (cursor < parsed_len) { return insert (keyval, keycode, modifiers); } else if (!m_config.spaceShowCandidates ()) { - insertSymbol (keyval); + insertSymbol (keyval, keycode, modifiers); updateZhuyin (); update (); |