summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/ZYZPhoneticEditor.cc8
-rw-r--r--src/ZYZPhoneticEditor.h2
-rw-r--r--src/ZYZPinyinEditor.cc6
-rw-r--r--src/ZYZZhuyinEditor.cc8
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 ();