Author: yamakenz
Date: Sun Sep 16 01:36:12 2007
New Revision: 4967

Modified:
   trunk/NEWS
   trunk/fep/callbacks.c

Log:
* fep/callbacks.c
  - (update_current_im_name): New static function copied from
    configuration_changed_cb()
  - (configuration_changed_cb): Replace with update_current_im_name()
    invocation
  - (prop_list_update_cb): Add update_current_im_name() invocation to
    fix the unupdated IM-name of the status line on receiving
    prop_list_update message. Thanks No.827,834 of [uim thread 7] for
    the bug report
* NEWS
  - Update


Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS  (original)
+++ trunk/NEWS  Sun Sep 16 01:36:12 2007
@@ -13,6 +13,10 @@
     - Fix fullwidth middle dot in halfwidth katakana table for
       Japanese kana-keyboard
 
+  - uim-fep
+    - Fix the unupdated IM-name of the status line on IM-switching by
+      an external IM switcher
+
   - uim-sh
     - Fix infinite loop on a non-recoverable read error such as
       non-ASCII char in token on a non-Unicode port

Modified: trunk/fep/callbacks.c
==============================================================================
--- trunk/fep/callbacks.c       (original)
+++ trunk/fep/callbacks.c       Sun Sep 16 01:36:12 2007
@@ -71,6 +71,7 @@
 static char *s_nokori_str;
 static int s_start_callbacks = FALSE;
 
+static void update_current_im_name(void);
 static void configuration_changed_cb(void *ptr);
 static void switch_app_global_im_cb(void *ptr, const char *name);
 static void switch_system_global_im_cb(void *ptr, const char *name);
@@ -341,12 +342,17 @@
   return str;
 }
 
-static void configuration_changed_cb(void *ptr)
+static void update_current_im_name(void)
 {
   s_im_str = uim_get_current_im_name(g_context);
   s_im_str = s_im_str != NULL ? s_im_str : "";
 }
 
+static void configuration_changed_cb(void *ptr)
+{
+  update_current_im_name();
+}
+
 static void switch_app_global_im_cb(void *ptr, const char *name)
 {
 }
@@ -651,6 +657,8 @@
     } else {
       free(labels);
     }
+    /* To make IM-name part of the status line updated. */
+    update_current_im_name();
   }
 
   if (!g_focus_in) {

Reply via email to