Fix prevent issue in send key event 92/33592/1
authorJihoon Kim <jihoon48.kim@samsung.com>
Wed, 3 Sep 2014 01:29:55 +0000 (10:29 +0900)
committerLi Zhang <li2012.zhang@samsung.com>
Tue, 13 Jan 2015 08:35:21 +0000 (16:35 +0800)
Change-Id: I36d7fe27699b5530ae46169e0a5ac12882ab633e

ism/extras/efl_immodule/isf_imf_context.cpp

index 724ec5788bd8385c43757651a7c391ad392cf203..e15e276f694973eba35cf99b9f4a4b9e8a963cad 100644 (file)
@@ -3797,15 +3797,18 @@ static void send_x_key_event (const KeyEvent &key, bool fake)
         keysyms = XGetKeyboardMapping (display, keycode_min,
                 keycode_max - keycode_min + 1,
                 &keycode_num);
-        mod = (mod + 1) & 0x7;
-        i = (keycode_max - keycode_min - mod - 1) * keycode_num;
-
-        keysyms[i] = keysym;
-        XChangeKeyboardMapping (display, keycode_min, keycode_num,
-                keysyms, (keycode_max - keycode_min));
-        XFree (keysyms);
-        XSync (display, False);
-        keycode = keycode_max - mod - 1;
+
+        if (keysyms) {
+            mod = (mod + 1) & 0x7;
+            i = (keycode_max - keycode_min - mod - 1) * keycode_num;
+
+            keysyms[i] = keysym;
+            XChangeKeyboardMapping (display, keycode_min, keycode_num,
+                    keysyms, (keycode_max - keycode_min));
+            XFree (keysyms);
+            XSync (display, False);
+            keycode = keycode_max - mod - 1;
+        }
     }
 
     unsigned int modifier = scim_x11_keymask_scim_to_x11 (display, key.mask);