ecore_imf/wayland: Fix bug language changed event is always called
authorJihoon Kim <jihoon48.kim@samsung.com>
Mon, 18 Apr 2016 05:51:46 +0000 (14:51 +0900)
committerJihoon Kim <jihoon48.kim@samsung.com>
Mon, 18 Apr 2016 05:51:46 +0000 (14:51 +0900)
src/modules/ecore_imf/wayland/wayland_imcontext.c

index 06fdddd..7b6517a 100644 (file)
@@ -685,18 +685,22 @@ text_input_language(void                 *data,
 
     if (imcontext->language)
       {
-         free(imcontext->language);
-
          if (strcmp(imcontext->language, language) != 0)
-           changed = EINA_TRUE;
+           {
+              changed = EINA_TRUE;
+              free(imcontext->language);
+           }
       }
     else
       changed = EINA_TRUE;
 
-    imcontext->language = strdup(language);
+    if (changed)
+      {
+         imcontext->language = strdup(language);
 
-    if (imcontext->ctx && changed)
-      ecore_imf_context_input_panel_event_callback_call(imcontext->ctx, ECORE_IMF_INPUT_PANEL_LANGUAGE_EVENT, 0);
+         if (imcontext->ctx)
+           ecore_imf_context_input_panel_event_callback_call(imcontext->ctx, ECORE_IMF_INPUT_PANEL_LANGUAGE_EVENT, 0);
+      }
 }
 
 static void