diff options
author | Peng Wu <alexepico@gmail.com> | 2016-09-19 14:19:50 +0800 |
---|---|---|
committer | Peng Wu <alexepico@gmail.com> | 2016-09-19 14:19:50 +0800 |
commit | 86159783e0ab330bdeff3d1dc21d2479485c7ae6 (patch) | |
tree | d98ecc90d7f45c16d965290aea1f9662a96d5f02 /src/ZYZPhoneticEditor.cc | |
parent | d8022f8fed9a81475f8aceca2fbb90292ace8284 (diff) | |
download | ibus-libzhuyin-86159783e0ab330bdeff3d1dc21d2479485c7ae6.tar.gz ibus-libzhuyin-86159783e0ab330bdeff3d1dc21d2479485c7ae6.tar.xz ibus-libzhuyin-86159783e0ab330bdeff3d1dc21d2479485c7ae6.zip |
use shift key to input full width character
Diffstat (limited to 'src/ZYZPhoneticEditor.cc')
-rw-r--r-- | src/ZYZPhoneticEditor.cc | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/src/ZYZPhoneticEditor.cc b/src/ZYZPhoneticEditor.cc index b05815a..184ab90 100644 --- a/src/ZYZPhoneticEditor.cc +++ b/src/ZYZPhoneticEditor.cc @@ -956,13 +956,13 @@ PhoneticEditor::getZhuyinCursor (void) } gboolean -PhoneticEditor::insertPunct (guint ch) +PhoneticEditor::insertPunct (guint keyval, guint keycode, guint modifiers) { /* for punctuations. */ - if (is_half_punct (ch)) { - if (m_props.modeFullWidth ()) { + if (is_half_punct (keyval)) { + if (m_props.modeFullWidth () || modifiers & IBUS_SHIFT_MASK) { String choice; - assert (half_punct_to_full_punct (ch, choice)); + assert (half_punct_to_full_punct (keyval, choice)); String lookup; int ch = find_lookup_key (choice); @@ -972,7 +972,7 @@ PhoneticEditor::insertPunct (guint ch) insert_symbol (m_text, m_cursor++, BUILTIN_SYMBOL_TYPE, lookup, choice); } else { - String choice = (gchar)ch; + String choice = (gchar) keyval; insert_symbol (m_text, m_cursor++, BUILTIN_SYMBOL_TYPE, "", choice); } @@ -984,13 +984,13 @@ PhoneticEditor::insertPunct (guint ch) } gboolean -PhoneticEditor::insertEnglish (guint ch) +PhoneticEditor::insertEnglish (guint keyval, guint keycode, guint modifiers) { /* for English. */ - if (is_half_english (ch)) { - if (m_props.modeFullWidth ()) { + if (is_half_english (keyval)) { + if (m_props.modeFullWidth () || modifiers & IBUS_SHIFT_MASK) { String choice; - assert (half_english_to_full_english (ch, choice)); + assert (half_english_to_full_english (keyval, choice)); String lookup; int ch = find_lookup_key (choice); @@ -1000,7 +1000,7 @@ PhoneticEditor::insertEnglish (guint ch) insert_symbol (m_text, m_cursor++, BUILTIN_SYMBOL_TYPE, lookup, choice); } else { - String choice = (gchar) ch; + String choice = (gchar) keyval; insert_symbol (m_text, m_cursor++, BUILTIN_SYMBOL_TYPE, "", choice); } @@ -1012,7 +1012,7 @@ PhoneticEditor::insertEnglish (guint ch) } gboolean -PhoneticEditor::insertNumbers (guint ch) +PhoneticEditor::insertNumbers (guint keyval, guint keycode, guint modifiers) { /* for input pad numbers. */ static const guint keyvals[] = {IBUS_KP_Delete, IBUS_KP_Insert, @@ -1035,7 +1035,7 @@ PhoneticEditor::insertNumbers (guint ch) return FALSE; for (size_t i = 0; i < G_N_ELEMENTS (keyvals); ++i) { - if (keyvals[i] == ch) { + if (keyvals[i] == keyval) { String choice; choice += numbers[i]; |