Let's ignore shift keys:
authorChoe Hwanjin <choe.hwanjin@gmail.com>
Sun, 22 Feb 2009 07:10:28 +0000 (16:10 +0900)
committerChoe Hwanjin <choe.hwanjin@gmail.com>
Sun, 22 Feb 2009 07:10:28 +0000 (16:10 +0900)
Or you cannot input some characters with shift keys.
If the shift key flush the current preedit string, users cannot add characters
with shift key to the preedit string.

src/engine.c

index 1658967..c0e1028 100644 (file)
@@ -234,6 +234,14 @@ ibus_hangul_engine_process_key_event (IBusEngine     *engine,
     if (modifiers & (IBUS_CONTROL_MASK | IBUS_MOD1_MASK))
         return FALSE;
 
+    // if we don't ignore shift keys, shift key will make flush the preedit 
+    // string. So you cannot input shift+key.
+    // Let's think about these examples:
+    //   dlTek (2 set)
+    //   qhRdmaqkq (2 set)
+    if (keyval == IBUS_Shift_L || keyval == IBUS_Shift_R)
+        return FALSE;
+
     if (keyval == IBUS_BackSpace) {
         retval = hangul_ic_backspace (hangul->context);
     } else {