ecore-imf: Don't crash if no XIM is present
authormike_m <mike_m@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Thu, 28 Jul 2011 12:01:04 +0000 (12:01 +0000)
committermike_m <mike_m@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Thu, 28 Jul 2011 12:01:04 +0000 (12:01 +0000)
Signed-off-by: Mike McCormack <mj.mccormack@samsung.com>
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/ecore@61850 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/modules/immodules/xim/ecore_imf_xim.c

index b92769b..795b98f 100644 (file)
@@ -901,10 +901,13 @@ get_ic(Ecore_IMF_Context *ctx)
           }
         im_style |= XIMStatusNothing;
 
-        ic = XCreateIC(im_info->im,
-                       XNInputStyle, im_style,
-                       XNClientWindow, imf_context_data->win,
-                       name, preedit_attr, NULL);
+        if (im_info->im)
+          {
+             ic = XCreateIC(im_info->im,
+                            XNInputStyle, im_style,
+                            XNClientWindow, imf_context_data->win,
+                            name, preedit_attr, NULL);
+          }
         XFree(preedit_attr);
         if(ic)
           {
@@ -1093,8 +1096,11 @@ xim_instantiate_callback(Display *display,
 
    im = XOpenIM(display, NULL, NULL, NULL);
 
-   if(!im)
-     return;
+   if (!im)
+     {
+        fprintf(stderr, "Failed to connect to IM\n");
+        return;
+     }
 
    info->im = im;
    setup_im (info);