summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeng Wu <alexepico@gmail.com>2015-06-09 13:52:51 +0800
committerPeng Wu <alexepico@gmail.com>2015-06-09 13:52:51 +0800
commit4307db6b3fc3d1e85a0dad3da703b224ffbc948c (patch)
treec52784c079747ee607a03e7bb2d46c4fe8b11b64
parent0756be97e0cf85e926183fc842ab173a03429db6 (diff)
downloadibus-libzhuyin-4307db6b3fc3d1e85a0dad3da703b224ffbc948c.tar.gz
ibus-libzhuyin-4307db6b3fc3d1e85a0dad3da703b224ffbc948c.tar.xz
ibus-libzhuyin-4307db6b3fc3d1e85a0dad3da703b224ffbc948c.zip
improves processEscape
-rw-r--r--src/ZYZPhoneticEditor.cc20
1 files changed, 18 insertions, 2 deletions
diff --git a/src/ZYZPhoneticEditor.cc b/src/ZYZPhoneticEditor.cc
index d6ac31e..31d0200 100644
--- a/src/ZYZPhoneticEditor.cc
+++ b/src/ZYZPhoneticEditor.cc
@@ -109,8 +109,24 @@ PhoneticEditor::processEscape (guint keyval, guint keycode,
if (cmshm_filter (modifiers) != 0)
return TRUE;
- reset ();
- return TRUE;
+ if (STATE_INPUT == m_input_state) {
+ reset ();
+ update ();
+ return TRUE;
+ }
+
+ if (STATE_CANDIDATE_SHOWN == m_input_state ||
+ STATE_BUILTIN_SYMBOL_SHOWN == m_input_state ||
+ STATE_BOPOMOFO_SYMBOL_SHOWN == m_input_state ||
+ STATE_USER_SYMBOL_LIST_ALL == m_input_state ||
+ STATE_USER_SYMBOL_SHOWN == m_input_state) {
+
+ m_input_state = STATE_INPUT;
+ update ();
+ return TRUE;
+ }
+
+ return FALSE;
}