summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeng Wu <alexepico@gmail.com>2014-07-11 14:04:15 +0800
committerPeng Wu <alexepico@gmail.com>2014-07-11 14:04:15 +0800
commit82b6ea97dcd1a84ce118d2660ce35124ebded716 (patch)
treef4b8fda88f0196ea92a7a269723f46226ccb4d7f
parent11ac7817f172fb26b232d68228ba18407b3a9bb1 (diff)
downloadibus-libzhuyin-82b6ea97dcd1a84ce118d2660ce35124ebded716.tar.gz
ibus-libzhuyin-82b6ea97dcd1a84ce118d2660ce35124ebded716.tar.xz
ibus-libzhuyin-82b6ea97dcd1a84ce118d2660ce35124ebded716.zip
write method processEscape
-rw-r--r--src/ZYZPhoneticEditor.cc15
-rw-r--r--src/ZYZPhoneticEditor.h1
-rw-r--r--src/ZYZPinyinEditor.cc3
-rw-r--r--src/ZYZZhuyinEditor.cc3
4 files changed, 22 insertions, 0 deletions
diff --git a/src/ZYZPhoneticEditor.cc b/src/ZYZPhoneticEditor.cc
index 60eab16..69c43fe 100644
--- a/src/ZYZPhoneticEditor.cc
+++ b/src/ZYZPhoneticEditor.cc
@@ -75,6 +75,21 @@ PhoneticEditor::~PhoneticEditor (void)
}
gboolean
+PhoneticEditor::processEscape (guint keyval, guint keycode,
+ guint modifiers)
+{
+ if (IBUS_Escape != keyval)
+ return FALSE;
+
+ if (cmshm_filter (modifiers) != 0)
+ return TRUE;
+
+ reset ();
+ return TRUE;
+}
+
+
+gboolean
PhoneticEditor::processEnter (guint keyval, guint keycode,
guint modifiers)
{
diff --git a/src/ZYZPhoneticEditor.h b/src/ZYZPhoneticEditor.h
index d99c9da..30d34ec 100644
--- a/src/ZYZPhoneticEditor.h
+++ b/src/ZYZPhoneticEditor.h
@@ -56,6 +56,7 @@ public:
virtual void reset (void);
virtual void candidateClicked (guint index, guint button, guint state);
virtual gboolean processKeyEvent (guint keyval, guint keycode, guint modifiers);
+ virtual gboolean processEscape (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);
diff --git a/src/ZYZPinyinEditor.cc b/src/ZYZPinyinEditor.cc
index 13a279a..6a6ba89 100644
--- a/src/ZYZPinyinEditor.cc
+++ b/src/ZYZPinyinEditor.cc
@@ -201,6 +201,9 @@ PinyinEditor::processKeyEvent (guint keyval, guint keycode, guint modifiers)
IBUS_META_MASK |
IBUS_LOCK_MASK);
+ if (processEscape (keyval, keycode, modifiers))
+ return TRUE;
+
if (STATE_INPUT == m_input_state) {
if (insert (keyval))
return TRUE;
diff --git a/src/ZYZZhuyinEditor.cc b/src/ZYZZhuyinEditor.cc
index bd84e37..df02ce2 100644
--- a/src/ZYZZhuyinEditor.cc
+++ b/src/ZYZZhuyinEditor.cc
@@ -213,6 +213,9 @@ ZhuyinEditor::processKeyEvent (guint keyval, guint keycode, guint modifiers)
IBUS_META_MASK |
IBUS_LOCK_MASK);
+ if (processEscape (keyval, keycode, modifiers))
+ return TRUE;
+
if (STATE_INPUT == m_input_state) {
if (insert (keyval))