summaryrefslogtreecommitdiff
path: root/src/isf_default_imengine.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/isf_default_imengine.cpp')
-rw-r--r--src/isf_default_imengine.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/isf_default_imengine.cpp b/src/isf_default_imengine.cpp
index 06b9d75..18b0b76 100644
--- a/src/isf_default_imengine.cpp
+++ b/src/isf_default_imengine.cpp
@@ -258,9 +258,15 @@ bool DefaultInstance::_process_keyrelease(const KeyEvent & key) {
bool DefaultInstance::_process_keypress(const KeyEvent & key_raw) {
KeyEvent key = key_raw;
- unsigned int keyvalue;
+ unsigned int keyvalue = key.code;
- keyvalue = key.code;
+ if (key.is_control_down() || key.is_alt_down())
+ return false;
+
+ if (key.code == SCIM_KEY_NullKey || key.code == SCIM_KEY_Cancel) {
+ m_prevkeyval = keyvalue;
+ return false;
+ }
if (m_lang >= IM_LANGUAGE_CNT) {
return false;