[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

rpms/iiimf/devel iiimgcf-fix-hang-r2757.patch, NONE, 1.1 iiimp-fix-memory-leak-r2770.patch, NONE, 1.1 iiimsf-fix-memory-leak-r2764.patch, NONE, 1.1 leif-unit-fix-deadkey-sequence-r2729.patch, NONE, 1.1 leif-unit-fix-freeze-with-flipping-focus-r2664.patch, NONE, 1.1 leif-unit-fix-key-twice-r2614-162646.patch, NONE, 1.1 iiimf.spec, 1.63, 1.64



Author: tagoh

Update of /cvs/dist/rpms/iiimf/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv3190

Modified Files:
	iiimf.spec 
Added Files:
	iiimgcf-fix-hang-r2757.patch iiimp-fix-memory-leak-r2770.patch 
	iiimsf-fix-memory-leak-r2764.patch 
	leif-unit-fix-deadkey-sequence-r2729.patch 
	leif-unit-fix-freeze-with-flipping-focus-r2664.patch 
	leif-unit-fix-key-twice-r2614-162646.patch 
Log Message:
* Thu Jul 20 2005 Akira TAGOH <tagoh redhat com> - 1:12.2-8
- leif-unit-fix-key-twice-r2614-162646.patch: backported a patch from
  upstream to get fixed the displaying character twice issue. (#162646)
- leif-unit-fix-freeze-with-flipping-focus-r2664.patch: backported a patch
  from upstream to get fixed the freeze issue with flipping focus.
- leif-unit-fix-deadkey-sequence-r2729.patch: backported a patch from
  upstream to get fixed the deadkey sequence issue.
- iiimgcf-fix-hang-r2757.patch: backported a patch from upstream to get
  fixed the applications freezes with pressing key during the focus is grabbed.
- iiimsf-fix-memory-leak-r2764.patch: backported a patch from upstream to
  get fixed the memory leak issue.
- iiimp-fix-memory-leak-r2770.patch: likewise.

iiimgcf-fix-hang-r2757.patch:
 gtkimcontextiiim.c |   17 +++++++++++++++++
 gtkimcontextiiim.h |    1 +
 2 files changed, 18 insertions(+)

--- NEW FILE iiimgcf-fix-hang-r2757.patch ---
2005-07-12  Ervin Yan  <ervin yan sun com>

	* gtkimcontextiiim.c
	* gtkimcontextiiim.h
	fix bug: gedit hangs with Click + ESC/CapsLock/NumLock/ScrollLock/F2/F8/F12
Index: iiimgcf/gtkimcontextiiim.c
===================================================================
--- iiimgcf/gtkimcontextiiim.c	(revision 2756)
+++ iiimgcf/gtkimcontextiiim.c	(revision 2757)
@@ -1631,6 +1631,8 @@
   im_context_iiim->has_focus = FALSE;
   im_context_iiim->in_toplevel = FALSE;
 
+  memset(&im_context_iiim->saved_key, 0, sizeof(im_context_iiim->saved_key));
+
   bindtextdomain (GETTEXT_PACKAGE, IIIMGCFLOCALEDIR);
   bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
 }
@@ -1661,8 +1663,19 @@
 static gint
 check_stored_keyevent (GtkIMContext * context, GdkEventKey * event)
 {
+  int same;
   GtkIMContextIIIM *context_iiim = GTK_IM_CONTEXT_IIIM (context);
   GSList *tmp;
+  GdkEventKey *saved_event = &(context_iiim->saved_key);
+
+  /*
+     More detail see bug 6226542: gedit hangs with Click + ESC/CapsLock/NumLock/ScrollLock/F2/F8/F12.
+     gdk_grad_add() will cause two same key_event be sent for grabbed window and focus window.
+     so need first check this event.
+  */
+  same = (event->time == saved_event->time && event->keyval == saved_event->keyval);
+  context_iiim->saved_key = *event;
+
   for (tmp = context_iiim->keylist; tmp; tmp = g_slist_next (tmp))
     {
       GdkEventKey *ev = (GdkEventKey *) tmp->data;
@@ -1690,6 +1703,10 @@
 	  return 0;
 	}
     }
+
+  if (same)
+     return 0;
+
   return -1;
 }
 
Index: iiimgcf/gtkimcontextiiim.h
===================================================================
--- iiimgcf/gtkimcontextiiim.h	(revision 2756)
+++ iiimgcf/gtkimcontextiiim.h	(revision 2757)
@@ -86,6 +86,7 @@
   GtkWidget *candidate;
   GdkRectangle cursor;
   GSList *keylist;
+  GdkEventKey  saved_key;
 
   guint candidate_start :1;
   guint use_preedit : 1;

iiimp-fix-memory-leak-r2770.patch:
 comp-imattribute.c |    2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)

--- NEW FILE iiimp-fix-memory-leak-r2770.patch ---
2005-07-13  Makoto Fujiyoshi <makoto_fujiyoshi justsystem co jp>

	* data/comp-imattribute.c (iiimp_imattribute_delete): fix memory leak.
	  It fails in the condition judgment because a wrong parameter was referred.

Index: lib/iiimp/data/comp-imattribute.c
===================================================================
--- lib/iiimp/data/comp-imattribute.c	(リビジョン 2766)
+++ lib/iiimp/data/comp-imattribute.c	(リビジョン 2770)
@@ -87,7 +87,7 @@
 void
 iiimp_imattribute_delete(IIIMP_data_s * data_s, IIIMP_imattribute * attr)
 {
-    switch(attr->id) {
+    switch(attr->id_pre) {
     case IIIMP_IMATTRIBUTE_INPUT_METHOD_LIST:
 	iiimp_inputmethod_descriptor_list_delete(
 	    data_s, attr->value.inputmethod_descriptor);

iiimsf-fix-memory-leak-r2764.patch:
 IIIMP_hotkey.cpp |   13 +++++++++++++
 1 files changed, 13 insertions(+)

--- NEW FILE iiimsf-fix-memory-leak-r2764.patch ---
2005-07-13  Makoto Fujiyoshi <makoto_fujiyoshi justsystem co jp>

	* IIIMP_hotkey.cpp (IIIMP_hotkey::draw_lang_selection_window): fix memory leak.

Index: iiimsf/src/IIIMP_hotkey.cpp
===================================================================
--- iiimsf/src/IIIMP_hotkey.cpp	(revision 2763)
+++ iiimsf/src/IIIMP_hotkey.cpp	(revision 2764)
@@ -580,6 +580,8 @@
     title->feedback = create_feedback(title->char_length);
     ptitle = convert_IMText_to_iiimp_text(hics->get_iiimptrans()->get_data_s(), title);
   
+    if (title->text.utf_chars) free(title->text.utf_chars);
+    if (title->feedback) free_feedback(title->feedback, title->char_length);
     if (title) free(title);
     if (tmp_str) free(tmp_str);
 
@@ -630,8 +632,19 @@
             plabel->next = pcur;
         }
         plabel = pcur;
+
+        free_feedback(vt[i]->feedback, vt[i]->char_length);
+        free(vt[i]->text.utf_chars);
+        free(vt[i]);
+
+        free_feedback(lt[i]->feedback, lt[i]->char_length);
+        free(lt[i]->text.utf_chars);
+        free(lt[i]);
     }
  
+    free(vt);
+    free(lt);
+
     p = iiimp_lookup_choice_draw_new(hics->get_iiimptrans()->get_data_s(),
 				     hics->get_im_id(),
 				     hics->get_ic_id(),

leif-unit-fix-deadkey-sequence-r2729.patch:
 Xctim/ctfilter.c        |    8 
 Xctim/keymap.c          |   30 +++
 Xdict/EUROPEAN/euro.utf |  393 ++++++++++++++++++++++++++++++++++++++++++++----
 dict/sysime.cfg         |   63 +++++++
 include/unit_input.h    |    9 -
 leif/hotkey_config.xml  |  169 --------------------
 leif/le.c               |   23 ++
 leif/unit_input.c       |   27 ++-
 8 files changed, 508 insertions(+), 214 deletions(-)

--- NEW FILE leif-unit-fix-deadkey-sequence-r2729.patch ---
Index: leif/unit/leif/unit_input.c
===================================================================
--- leif/unit/leif/unit_input.c	(リビジョン 2728)
+++ leif/unit/leif/unit_input.c	(リビジョン 2729)
@@ -277,7 +277,7 @@
    [ GENERIC_IM_TABLE ]
 
    [ locale_name ]
-   engine_name		engine_path	  engine_options
+   engine_name		engine_path	  engine_options default_conv_mode
 
    for example:
    [ HINDI ]  
@@ -295,7 +295,7 @@
 int get_line(char *buf, int size, char **curptr, char *line);
 int set_keyvalues(unit_desktop_t *udp, char *buf, char *Lname);
 int open_engine(unit_desktop_t *udp, int locale_id, char *locale_name, 
-		char *engine_name, char *engine_path, char *engine_options);
+		char *engine_name, char *engine_path, char *engine_options, char *cflag);
 
 void  
 getNEngineIds(unit_desktop_t *udp){
@@ -343,7 +343,7 @@
 	      udp->gEngine_Info[i]->core.baseinfo.status);
     }
     for (i=0; i<udp->gEngine_Num; i++) {
-	log_f("print_core: locale_name [%s], engine_name [%s], engine_id [%d]\n",udp->modeList[i]->locale_name, udp->modeList[i]->engine_name, udp->modeList[i]->engine_id);
+	log_f("print_core: locale_name [%s], engine_name [%s], engine_id [%d], default_state [%s] \n",udp->modeList[i]->locale_name, udp->modeList[i]->engine_name, udp->modeList[i]->engine_id, udp->modeList[i]->default_state);
 	log_f("print_core: nlocale_name [%s], nlayout_name [%s]\n",udp->modeList[i]->nlocale_name, udp->modeList[i]->nlayout_name);
     }
     log_f("print_core: udp->nextLocaleKeycode [%d] \n",udp->nextLocaleKeycode);
@@ -426,7 +426,7 @@
     char          line[MAX_LINE_LEN];
     char          keyCodeName[NAME_MAX], modifierName[NAME_MAX];
     char          locale_name[NAME_MAX], *kptr, *ptr;
-    char          *engine_name, *engine_path, *engine_options;
+    char          *engine_name, *engine_path, *engine_options, *conv_flag;
     int           len;
     int           locale_flag = ENCODE_ERROR;
     int           generic_flag = 0;
@@ -563,10 +563,18 @@
         while (*ptr && isspace(*ptr)) ptr++;
         engine_options = ptr;
 
+        while (*ptr && !isspace(*ptr)) ptr++;
+        if (*ptr) {
+            *ptr = '\0';
+            ptr++;
+        }
+        while (*ptr && isspace(*ptr)) ptr++;
+        conv_flag = ptr;
+
         log_f("locale_id:%d, locale:%s, Engine Name:%s\n", locale_flag, locale_name, engine_name);
-        log_f("Engine Path: %s, Engine Options: %s\n", engine_path, engine_options);
+        log_f("Engine Path: %s, Engine Options: %s, Conv_flag [%s] \n", engine_path, engine_options, conv_flag);
         open_engine(udp, locale_flag, locale_name,
-                    engine_name, engine_path, engine_options);
+                    engine_name, engine_path, engine_options, conv_flag);
 
     } while (1);
 
@@ -594,6 +602,7 @@
     /*  
      *  print_core(udp); 
      */
+     print_core(udp); 
 
     return 0;
 
@@ -921,13 +930,14 @@
 
 /* engine_options can be data_path or engine options. */
 int 
-open_engine(udp, locale_id, locale_name, engine_name, engine_path, engine_options)
+open_engine(udp, locale_id, locale_name, engine_name, engine_path, engine_options, conv_flag)
     unit_desktop_t *udp;
 int 	locale_id;
 char 	*locale_name;
 char 	*engine_name;
 char 	*engine_path;
 char 	*engine_options;
+char 	*conv_flag;
 {
     int    		ret, i;
     char   		file_name[PATH_MAX];
@@ -1029,8 +1039,9 @@
     udp->modeList[udp->gEngine_Num]->nlayout_name = (char *)strdup(udp->gEngine_Info[udp->gEngine_Num]->core.baseinfo.cname);
     udp->modeList[udp->gEngine_Num]->engine_id = udp->gEngine_Num;
     udp->modeList[udp->gEngine_Num]->engine_name = (char *)strdup(engine_name);
+    udp->modeList[udp->gEngine_Num]->default_state = (char *)strdup(conv_flag);
 
-    udp->gEngine_Num ++;
+    udp->gEngine_Num++;
     return(0);
 }
 
Index: leif/unit/leif/le.c
===================================================================
--- leif/unit/leif/le.c	(リビジョン 2728)
+++ leif/unit/leif/le.c	(リビジョン 2729)
@@ -65,6 +65,7 @@
 void if_le_UnsetSCFocus(iml_session_t *);
 void if_le_SendEvent(iml_session_t *, IMInputEvent * ev);
 int get_list_of_supported_locales();
+Bool is_trigger_on_required(unit_desktop_t *udp, char *locale);
 unit_desktop_t *create_unit_desktop();
 void add_unit_desktop(unit_desktop_t *udp);
 unit_desktop_t * find_unit_desktop_by_sc(iml_session_t *);
@@ -530,6 +531,9 @@
                 
 	  case SC_REALIZE:
 	   log_f("SC_REALIZE [0x%x] \n", s);
+	   if (is_trigger_on_required(udp, session_data->locale)) {
+	     proc_key_switch_conversion_event(udp, s, CONVERSION_ON, (char *)session_data->locale);
+	   }
 	   session_data->hkp_notify_flag = False;
 	   break;
 
@@ -610,6 +614,25 @@
     }
 }
 
+Bool 
+is_trigger_on_required(
+    unit_desktop_t *udp,
+    char *locale
+)
+{
+    int i;
+
+    for (i=0 ; i<udp->gEngine_Num ; i++) {
+        /*
+        log_f("udp->modeList[%d]->locale_name [%s], locale [%s]\n", i, udp->modeList[i]->locale_name, locale);
+        log_f("udp->modeList[%d]->default_state [%s]\n", i, udp->modeList[i]->default_state);
+        */
+	if ((!strcmp(udp->modeList[i]->locale_name, locale)) && (!strcmp(udp->modeList[i]->default_state, (char *)"CONV_ON")))
+	    return True;
+    }
+    return False;
+}
+
 int 
 get_list_of_supported_locales()
 {
Index: leif/unit/leif/hotkey_config.xml
===================================================================
--- leif/unit/leif/hotkey_config.xml	(リビジョン 2728)
+++ leif/unit/leif/hotkey_config.xml	(リビジョン 2729)
@@ -18,7 +18,7 @@
                                         SESSION_SPECIFIC_HOTKEY 
        -->
        <scope>1</scope>
-       <num_hotkeys>3</num_hotkeys>
+       <num_hotkeys>2</num_hotkeys>
        <!--
            <hotkey> 
            child directives: <id>, <state_flag>, <action_flag>,
@@ -65,172 +65,5 @@
              <modifier>IM_ALT_GRAPH_MASK</modifier>
           </key>
        </hotkey>
-       <hotkey>
-          <id>3</id>
-          <state_flag>0</state_flag>
-          <action_flag>1</action_flag>
-          <label>DEADKEY</label>
-          <num_keys>40</num_keys>
-          <key>
-             <keycode>IM_VK_DEAD_GRAVE</keycode>
-             <modifier>0</modifier>
-          </key>
-          <key>
-             <keycode>IM_VK_DEAD_GRAVE</keycode>
-             <modifier>IM_SHIFT_MASK</modifier>
-          </key>
-          <key>
-             <keycode>IM_VK_DEAD_GRAVE</keycode>
-             <modifier>IM_ALT_GRAPH_MASK</modifier>
-          </key>
-          <key>
-             <keycode>IM_VK_DEAD_GRAVE</keycode>
-             <modifier>IM_SHIFT_MASK|IM_ALT_GRAPH_MASK</modifier>
-          </key>
-          <key>
-             <keycode>IM_VK_DEAD_ACUTE</keycode>
-             <modifier>0</modifier>
-          </key>
-          <key>
-             <keycode>IM_VK_DEAD_ACUTE</keycode>
-             <modifier>IM_ALT_GRAPH_MASK</modifier>
-          </key>
-          <key>
-             <keycode>IM_VK_DEAD_ACUTE</keycode>
-             <modifier>IM_SHIFT_MASK|IM_ALT_GRAPH_MASK</modifier>
-          </key>
-          <key>
-             <keycode>IM_VK_DEAD_CIRCUMFLEX</keycode>
-             <modifier>0</modifier>
-          </key>
-          <key>
-             <keycode>IM_VK_DEAD_CIRCUMFLEX</keycode>
-             <modifier>IM_SHIFT_MASK</modifier>
-          </key>
-          <key>
-             <keycode>IM_VK_DEAD_CIRCUMFLEX</keycode>
-             <modifier>IM_ALT_GRAPH_MASK</modifier>
-          </key>
-          <key>
-             <keycode>IM_VK_DEAD_TILDE</keycode>
-             <modifier>0</modifier>
-          </key>
-          <key>
-             <keycode>IM_VK_DEAD_TILDE</keycode>
-             <modifier>IM_SHIFT_MASK</modifier>
-          </key>
-          <key>
-             <keycode>IM_VK_DEAD_TILDE</keycode>
-             <modifier>IM_ALT_GRAPH_MASK</modifier>
-          </key>
-          <key>
-             <keycode>IM_VK_DEAD_TILDE</keycode>
-             <modifier>IM_SHIFT_MASK|IM_ALT_GRAPH_MASK</modifier>
-          </key>
-          <key>
-             <keycode>IM_VK_DEAD_MACRON</keycode>
-             <modifier>0</modifier>
-          </key>
-          <key>
-             <keycode>IM_VK_DEAD_BREVE</keycode>
-             <modifier>0</modifier>
-          </key>
-          <key>
-             <keycode>IM_VK_DEAD_BREVE</keycode>
-             <modifier>IM_ALT_GRAPH_MASK</modifier>
-          </key>
-          <key>
-             <keycode>IM_VK_DEAD_ABOVEDOT</keycode>
-             <modifier>0</modifier>
-          </key>
-          <key>
-             <keycode>IM_VK_DEAD_ABOVEDOT</keycode>
-             <modifier>IM_SHIFT_MASK</modifier>
-          </key>
-          <key>
-             <keycode>IM_VK_DEAD_ABOVEDOT</keycode>
-             <modifier>IM_ALT_GRAPH_MASK</modifier>
-          </key>
-          <key>
-             <keycode>IM_VK_DEAD_ABOVEDOT</keycode>
-             <modifier>IM_SHIFT_MASK|IM_ALT_GRAPH_MASK</modifier>
-          </key>
-          <key>
-             <keycode>IM_VK_DEAD_DIAERESIS</keycode>
-             <modifier>0</modifier>
-          </key>
-          <key>
-             <keycode>IM_VK_DEAD_DIAERESIS</keycode>
-             <modifier>IM_SHIFT_MASK</modifier>
-          </key>
-          <key>
-             <keycode>IM_VK_DEAD_DIAERESIS</keycode>
-             <modifier>IM_ALT_GRAPH_MASK</modifier>
-          </key>
-          <key>
-             <keycode>IM_VK_DEAD_DIAERESIS</keycode>
-             <modifier>IM_SHIFT_MASK|IM_ALT_GRAPH_MASK</modifier>
-          </key>
-          <key>
-             <keycode>IM_VK_DEAD_ABOVERING</keycode>
-             <modifier>0</modifier>
-          </key>
-          <key>
-             <keycode>IM_VK_DEAD_ABOVERING</keycode>
-             <modifier>IM_SHIFT_MASK</modifier>
-          </key>
-          <key>
-             <keycode>IM_VK_DEAD_ABOVERING</keycode>
-             <modifier>IM_ALT_GRAPH_MASK</modifier>
-          </key>
-          <key>
-             <keycode>IM_VK_DEAD_DOUBLEACUTE</keycode>
-             <modifier>0</modifier>
-          </key>
-          <key>
-             <keycode>IM_VK_DEAD_DOUBLEACUTE</keycode>
-             <modifier>IM_ALT_GRAPH_MASK</modifier>
-          </key>
-          <key>
-             <keycode>IM_VK_DEAD_CARON</keycode>
-             <modifier>0</modifier>
-          </key>
-          <key>
-             <keycode>IM_VK_DEAD_CARON</keycode>
-             <modifier>IM_SHIFT_MASK</modifier>
-          </key>
-          <key>
-             <keycode>IM_VK_DEAD_CEDILLA</keycode>
-             <modifier>0</modifier>
-          </key>
-          <key>
-             <keycode>IM_VK_DEAD_CEDILLA</keycode>
-             <modifier>IM_ALT_GRAPH_MASK</modifier>
-          </key>
-          <key>
-             <keycode>IM_VK_DEAD_CEDILLA</keycode>
-             <modifier>IM_SHIFT_MASK|IM_ALT_GRAPH_MASK</modifier>
-          </key>
-          <key>
-             <keycode>IM_VK_DEAD_OGONEK</keycode>
-             <modifier>0</modifier>
-          </key>
-          <key>
-             <keycode>IM_VK_DEAD_OGONEK</keycode>
-             <modifier>IM_ALT_GRAPH_MASK</modifier>
-          </key>
-          <key>
-             <keycode>IM_VK_DEAD_IOTA</keycode>
-             <modifier>0</modifier>
-          </key>
-          <key>
-             <keycode>IM_VK_DEAD_VOICED_SOUND</keycode>
-             <modifier>0</modifier>
-          </key>
-          <key>
-             <keycode>IM_VK_DEAD_SEMIVOICED_SOUND</keycode>
-             <modifier>0</modifier>
-          </key>
-       </hotkey>
     </hotkey_profile>
 </le>
Index: leif/unit/dict/sysime.cfg
===================================================================
--- leif/unit/dict/sysime.cfg	(リビジョン 2728)
+++ leif/unit/dict/sysime.cfg	(リビジョン 2729)
@@ -12,6 +12,69 @@
 [ en ]
 euro common/xctim.so EUROPEAN
 
+[ pt_BR ]
+euro common/xctim.so EUROPEAN CONV_ON
+
+[ cs_CS ]
+euro common/xctim.so EUROPEAN CONV_ON
+
+[ da_DK ]
+euro common/xctim.so EUROPEAN CONV_ON
+
+[ nl_NL ]
+euro common/xctim.so EUROPEAN CONV_ON
+
+[ fi_FI ]
+euro common/xctim.so EUROPEAN CONV_ON
+
+[ fr_FR ]
+euro common/xctim.so EUROPEAN CONV_ON
+
+[ de_DE ]
+euro common/xctim.so EUROPEAN CONV_ON
+
+[ el_GR ]
+euro common/xctim.so EUROPEAN CONV_ON
+
+[ lv_LV ]
+euro common/xctim.so EUROPEAN CONV_ON
+
+[ no_NO ]
+euro common/xctim.so EUROPEAN CONV_ON
+
+[ nn_NO ]
+euro common/xctim.so EUROPEAN CONV_ON
+
+[ pt_PT ]
+euro common/xctim.so EUROPEAN CONV_ON
+
+[ sr_CS ]
+euro common/xctim.so EUROPEAN CONV_ON
+
+[ sr_YU ]
+euro common/xctim.so EUROPEAN CONV_ON
+
+[ sk_SK ]
+euro common/xctim.so EUROPEAN CONV_ON
+
+[ es_ES ]
+euro common/xctim.so EUROPEAN CONV_ON
+
+[ es_MX ]
+euro common/xctim.so EUROPEAN CONV_ON
+
+[ sv_SE ]
+euro common/xctim.so EUROPEAN CONV_ON
+
+[ sv_FI ]
+euro common/xctim.so EUROPEAN CONV_ON
+
+[ fr_FR ]
+euro common/xctim.so EUROPEAN CONV_ON
+
+[ tr_TR ]
+euro common/xctim.so EUROPEAN CONV_ON
+
 [ he ]
 hebrew common/xctim.so HEBREW
 
Index: leif/unit/include/unit_input.h
===================================================================
--- leif/unit/include/unit_input.h	(リビジョン 2728)
+++ leif/unit/include/unit_input.h	(リビジョン 2729)
@@ -97,8 +97,12 @@
 #define IME_COMPOSE_KEY_AS_HOTKEY	13
 #define IME_EURO_KEY_AS_HOTKEY		14
 #define SPACE_KEY           		0x20
-#define QUOTE_KEY           		0x27
-#define BACK_QUOTE_KEY           	0x28
+#define IME_QUOTE           		0x27
+#define IME_BACK_QUOTE           	0x60
+#define IME_ASCIICIRCUM           	0x5e
+#define IME_GREATER	           	0x3e
+#define IME_QUOTEDBL	           	0x22
+#define IME_ASCIITILDE	           	0x7e
 
     /***************************************************************************/
     /*                    Input Method Engine  Definition                      */
@@ -356,6 +360,7 @@
   char *nlayout_name;
   char *engine_name;
   int engine_id;
+  char	*default_state;	
 }IMEModeList;
 
 typedef struct KEY_VALUE_PAIR_ {
Index: leif/unit/Xctim/keymap.c
===================================================================
--- leif/unit/Xctim/keymap.c	(リビジョン 2728)
+++ leif/unit/Xctim/keymap.c	(リビジョン 2729)
@@ -118,11 +118,18 @@
     } else {
       /*  normal key  */
       log_f(" Normal Key :0x%x, %c\n", keychar, keychar);
-      switch (keycode) {
-      case IM_VK_QUOTE:
-	return(QUOTE_KEY);
-      case IM_VK_BACK_QUOTE:
-	return(BACK_QUOTE_KEY);
+      switch (keychar) {
+      case IME_QUOTE:
+	return IM_VK_DEAD_ACUTE;
+      case IME_BACK_QUOTE:
+	return IM_VK_DEAD_GRAVE;
+      case IME_ASCIICIRCUM:
+      case IME_GREATER:
+        return IM_VK_DEAD_CIRCUMFLEX;
+      case IME_QUOTEDBL:
+        return IM_VK_DEAD_DIAERESIS;
+      case IME_ASCIITILDE:
+        return IM_VK_DEAD_TILDE;
       }
       return(keycode);
     }
@@ -136,6 +143,19 @@
     } else if (keychar != 0) {
       /*  normal key  */
       log_f(" Ascii Key :0x%x, %c\n", keychar, keychar);
+      switch (keychar) {
+        case IME_QUOTE:
+	  return IM_VK_DEAD_ACUTE;
+        case IME_BACK_QUOTE:
+	  return IM_VK_DEAD_GRAVE;
+        case IME_ASCIICIRCUM:
+        case IME_GREATER:
+          return IM_VK_DEAD_CIRCUMFLEX;
+        case IME_QUOTEDBL:
+          return IM_VK_DEAD_DIAERESIS;
+        case IME_ASCIITILDE:
+          return IM_VK_DEAD_TILDE;
+      }
       return(keychar);
     }else
       return(IME_NOT_USED_KEY);
Index: leif/unit/Xctim/ctfilter.c
===================================================================
--- leif/unit/Xctim/ctfilter.c	(リビジョン 2728)
+++ leif/unit/Xctim/ctfilter.c	(リビジョン 2729)
@@ -314,12 +314,17 @@
   } else if ((keycode == 0xd1) || (keycode == 0xf1)) {
      is_dead_key = 1;
      modifier = key_event->modifier;
+  /*
   } else if (keycode == 0x7e) {
      is_dead_key = 1;
      key_event->keyCode = keycode = IM_VK_DEAD_TILDE ;
+  */
   } else if ((keycode == IM_VK_4) || (keycode == IM_VK_5)) {
      if (key_event->modifier & IM_ALT_GRAPH_MASK)
        modifier = key_event->modifier;
+  } else if ((keycode >= IM_VK_DEAD_GRAVE) && (keycode <= IM_VK_DEAD_SEMIVOICED_SOUND)) {
+     is_dead_key = 1;
+     key_event->keyCode = keycode;
   }
  
   switch(hztbl->nSelectKeyMode) {
@@ -362,7 +367,6 @@
       return(IME_USED_KEY);
     }
   
-    log_f("ctfilter:  Input_Len[%d]\n", Input_Len);
     Input_Buf[Input_Len] = key_event->keyCode;
     /*
     Input_Buf[Input_Len] = keycode;
@@ -373,7 +377,7 @@
     Input_Buf[Input_Len] = 0;
     log_f("ctfilter: Input_Len[%d]\n", Input_Len);
     for(i=0;i<Input_Len;i++) 
-      log_f("Input_Buf [%x]\n",Input_Buf[i]);
+      log_f("Input_Buf [%d]\n",Input_Buf[i]);
 
     if ((key_event->keyCode == 84) && (key_event->modifier == 3) && (Input_Len == 2)){
       return(IME_USED_KEY);
Index: leif/unit/Xdict/EUROPEAN/euro.utf
===================================================================
--- leif/unit/Xdict/EUROPEAN/euro.utf	(リビジョン 2728)
+++ leif/unit/Xdict/EUROPEAN/euro.utf	(リビジョン 2729)
@@ -56,7 +56,6 @@
 129:0:90:0:	ź
 129:0:90:1:	Ź
 130:0:32:0:	^
-130:0:33:0:	¦
 130:0:45:0:	¯
 130:0:46:0:	·
 130:0:47:0:	|
@@ -64,6 +63,7 @@
 130:0:49:0:	¹
 130:0:50:0:	²
 130:0:51:0:	³
+130:0:517:0:	¦
 130:0:523:0:	¯
 130:0:65:0:	â
 130:0:65:1:	Â
@@ -139,6 +139,9 @@
 135:0:85:1:	Ü
 135:0:89:0:	ÿ
 135:0:89:1:	Ÿ
+136:0:48:0:	°
+136:0:65:0:	å
+136:0:65:1:	Å
 136:0:85:0:	ů
 136:0:85:1:	Å®
 137:0:79:0:	ő
@@ -224,10 +227,6 @@
 180:0:89:1:	Ý
 180:0:90:0:	ź
 180:0:90:1:	ľ
-52:32:	€
-53:32:	€
-69:32:	€
-69:33:	€
 193:0:	Á
 196:0:	Ä
 201:0:	É
@@ -272,6 +271,8 @@
 516:0:	€
 516:4:	€
 516:5:	€
+52:32:	€
+53:32:	€
 65312:0:124:0:124:0:	¦
 65312:0:124:0:67:0:	¢
 65312:0:124:0:67:1:	¢
@@ -288,6 +289,28 @@
 65312:0:126:0:79:1:	Õ
 65312:0:126:0:85:0:	Å©
 65312:0:126:0:85:1:	Ũ
+65312:0:130:0:130:0:	»
+65312:0:130:0:32:0:	^
+65312:0:130:0:65:0:	â
+65312:0:130:0:65:1:	Â
+65312:0:130:0:67:0:	ĉ
+65312:0:130:0:67:1:	Ĉ
+65312:0:130:0:69:0:	ê
+65312:0:130:0:69:1:	Ê
+65312:0:130:0:71:0:	ĝ
+65312:0:130:0:71:1:	Ĝ
+65312:0:130:0:72:0:	ĥ
+65312:0:130:0:72:1:	Ĥ
+65312:0:130:0:73:0:	î
+65312:0:130:0:73:1:	Î
+65312:0:130:0:74:0:	ĵ
+65312:0:130:0:74:1:	Ä´
+65312:0:130:0:79:0:	ô
+65312:0:130:0:79:1:	Ô
+65312:0:130:0:83:0:	ŝ
+65312:0:130:0:83:1:	Ŝ
+65312:0:130:0:85:0:	û
+65312:0:130:0:85:1:	Û
 65312:0:151:0:48:0:	°
 65312:0:151:0:65:0:	å
 65312:0:151:0:65:1:	Å
@@ -397,6 +420,7 @@
 65312:0:222:0:90:0:	ź
 65312:0:222:0:90:1:	ľ
 65312:0:32:0:126:0:	~
+65312:0:32:0:130:0:	^
 65312:0:32:0:160:0:	^
 65312:0:32:0:176:0:	°
 65312:0:32:0:192:0:	`
@@ -410,12 +434,6 @@
 65312:0:32:0:86:0:	ˇ
 65312:0:32:0:94:0:	^
 65312:0:32:0:96:0:	`
-65312:0:33:0:33:0:	¡
-65312:0:33:0:80:0:	¶
-65312:0:33:0:80:1:	¶
-65312:0:33:0:83:0:	§
-65312:0:33:0:83:1:	§
-65312:0:33:0:94:0:	¦
 65312:0:39:0:32:0:	'
 65312:0:39:0:39:0:	´
 65312:0:39:0:65:0:	á
@@ -547,6 +565,12 @@
 65312:0:51:0:83:1:	³
 65312:0:51:0:94:0:	³
 65312:0:513:0:45:0:	÷
+65312:0:517:0:517:0:	¡
+65312:0:517:0:80:0:	¶
+65312:0:517:0:80:1:	¶
+65312:0:517:0:83:0:	§
+65312:0:517:0:83:1:	§
+65312:0:517:0:94:0:	¦
 65312:0:521:0:45:0:	±
 65312:0:521:0:521:0:	#
 65312:0:523:0:523:0:	¯
@@ -572,6 +596,7 @@
 65312:0:61:0:89:1:	¥
 65312:0:63:0:63:0:	¿
 65312:0:65:0:126:0:	ã
+65312:0:65:0:130:0:	â
 65312:0:65:0:151:0:	å
 65312:0:65:0:152:0:	ä
 65312:0:65:0:160:0:	â
@@ -594,6 +619,7 @@
 65312:0:65:0:94:0:	â
 65312:0:65:0:96:0:	à
 65312:0:65:1:126:0:	Ã
+65312:0:65:1:130:0:	Â
 65312:0:65:1:151:0:	Å
 65312:0:65:1:152:0:	Ä
 65312:0:65:1:160:0:	Â
@@ -615,6 +641,7 @@
 65312:0:66:0:86:0:	¦
 65312:0:66:1:86:1:	¦
 65312:0:67:0:124:0:	¢
+65312:0:67:0:130:0:	ĉ
 65312:0:67:0:160:0:	ĉ
 65312:0:67:0:180:0:	ć
 65312:0:67:0:222:0:	ć
@@ -628,8 +655,10 @@
 65312:0:67:0:79:0:	©
 65312:0:67:0:79:1:	©
 65312:0:67:0:86:0:	č
+65312:0:67:0:92:0:	¢
 65312:0:67:0:94:0:	ĉ
 65312:0:67:1:124:0:	¢
+65312:0:67:1:130:0:	Ĉ
 65312:0:67:1:160:0:	Ĉ
 65312:0:67:1:180:0:	Ć
 65312:0:67:1:222:0:	Ć
@@ -643,6 +672,7 @@
 65312:0:67:1:79:0:	©
 65312:0:67:1:79:1:	©
 65312:0:67:1:86:0:	Č
+65312:0:67:1:92:0:	¢
 65312:0:67:1:94:0:	Ĉ
 65312:0:68:0:439:0:	ď
 65312:0:68:0:45:0:	ð
@@ -651,6 +681,7 @@
 65312:0:68:1:439:0:	Ď
 65312:0:68:1:45:0:	Ð
 65312:0:68:1:86:0:	Ď
+65312:0:69:0:130:0:	ê
 65312:0:69:0:152:0:	ë
 65312:0:69:0:160:0:	ê
 65312:0:69:0:168:0:	ë
@@ -667,6 +698,7 @@
 65312:0:69:0:86:0:	ě
 65312:0:69:0:94:0:	ê
 65312:0:69:0:96:0:	è
+65312:0:69:1:130:0:	Ê
 65312:0:69:1:152:0:	Ë
 65312:0:69:1:160:0:	Ê
 65312:0:69:1:168:0:	Ë
@@ -683,21 +715,26 @@
 65312:0:69:1:86:0:	Ě
 65312:0:69:1:94:0:	Ê
 65312:0:69:1:96:0:	È
+65312:0:71:0:130:0:	ĝ
 65312:0:71:0:160:0:	ĝ
 65312:0:71:0:44:0:	ģ
 65312:0:71:0:46:0:	Ä¡
 65312:0:71:0:85:0:	ğ
 65312:0:71:0:94:0:	ĝ
+65312:0:71:1:130:0:	Ĝ
 65312:0:71:1:160:0:	Ĝ
 65312:0:71:1:44:0:	Ģ
 65312:0:71:1:46:0:	Ä 
 65312:0:71:1:85:0:	Ğ
 65312:0:71:1:94:0:	Ĝ
+65312:0:72:0:130:0:	ĥ
 65312:0:72:0:160:0:	ĥ
 65312:0:72:0:94:0:	ĥ
+65312:0:72:1:130:0:	Ĥ
 65312:0:72:1:160:0:	Ĥ
 65312:0:72:1:94:0:	Ĥ
 65312:0:73:0:126:0:	Ä©
+65312:0:73:0:130:0:	î
 65312:0:73:0:152:0:	ï
 65312:0:73:0:160:0:	î
 65312:0:73:0:180:0:	í
@@ -710,6 +747,7 @@
 65312:0:73:0:94:0:	î
 65312:0:73:0:96:0:	ì
 65312:0:73:1:126:0:	Ĩ
+65312:0:73:1:130:0:	Î
 65312:0:73:1:152:0:	Ï
 65312:0:73:1:160:0:	Î
 65312:0:73:1:180:0:	Í
@@ -721,13 +759,16 @@
 65312:0:73:1:65:0:	Ä®
 65312:0:73:1:94:0:	Î
 65312:0:73:1:96:0:	Ì
+65312:0:74:0:130:0:	ĵ
 65312:0:74:0:160:0:	ĵ
 65312:0:74:0:94:0:	ĵ
+65312:0:74:1:130:0:	Ä´
 65312:0:74:1:160:0:	Ä´
 65312:0:74:1:94:0:	Ä´
 65312:0:75:0:44:0:	Ä·
 65312:0:75:0:75:0:	ĸ
 65312:0:75:1:44:0:	Ķ
+65312:0:76:0:130:0:	ľ
 65312:0:76:0:160:0:	ľ
 65312:0:76:0:180:0:	ĺ
 65312:0:76:0:222:0:	ĺ
@@ -738,6 +779,7 @@
 65312:0:76:0:47:0:	ł
 65312:0:76:0:61:0:	£
 65312:0:76:0:86:0:	|
+65312:0:76:1:130:0:	Ľ
 65312:0:76:1:160:0:	Ľ
 65312:0:76:1:180:0:	Ĺ
 65312:0:76:1:222:0:	Ĺ
@@ -767,6 +809,7 @@
 65312:0:78:1:78:1:	Ŋ
 65312:0:78:1:86:0:	Ň
 65312:0:79:0:126:0:	õ
+65312:0:79:0:130:0:	ô
 65312:0:79:0:152:0:	ö
 65312:0:79:0:160:0:	ô
 65312:0:79:0:168:0:	ö
@@ -788,6 +831,7 @@
 65312:0:79:0:94:0:	ô
 65312:0:79:0:96:0:	ò
 65312:0:79:1:126:0:	Õ
+65312:0:79:1:130:0:	Ô
 65312:0:79:1:152:0:	Ö
 65312:0:79:1:160:0:	Ô
 65312:0:79:1:168:0:	Ö
@@ -808,8 +852,8 @@
 65312:0:79:1:88:1:	¤
 65312:0:79:1:94:0:	Ô
 65312:0:79:1:96:0:	Ò
-65312:0:80:0:33:0:	¶
-65312:0:80:1:33:0:	¶
+65312:0:80:0:517:0:	¶
+65312:0:80:1:517:0:	¶
 65312:0:82:0:180:0:	ŕ
 65312:0:82:0:222:0:	ŕ
 65312:0:82:0:39:0:	ŕ
@@ -823,10 +867,10 @@
 65312:0:82:1:44:0:	Ŗ
 65312:0:82:1:79:1:	®
 65312:0:82:1:86:0:	Ř
+65312:0:83:0:130:0:	ŝ
 65312:0:83:0:160:0:	ŝ
 65312:0:83:0:180:0:	ś
 65312:0:83:0:222:0:	ś
-65312:0:83:0:33:0:	§
 65312:0:83:0:39:0:	ś
 65312:0:83:0:439:0:	Å¡
 65312:0:83:0:44:0:	ş
@@ -834,15 +878,16 @@
 65312:0:83:0:49:0:	¹
 65312:0:83:0:50:0:	²
 65312:0:83:0:51:0:	³
+65312:0:83:0:517:0:	§
 65312:0:83:0:79:0:	§
 65312:0:83:0:83:0:	ß
 65312:0:83:0:86:0:	Å¡
 65312:0:83:0:86:1:	Å¡
 65312:0:83:0:94:0:	ŝ
+65312:0:83:1:130:0:	Ŝ
 65312:0:83:1:160:0:	Ŝ
 65312:0:83:1:180:0:	Ś
 65312:0:83:1:222:0:	Ś
-65312:0:83:1:33:0:	§
 65312:0:83:1:39:0:	Ś
 65312:0:83:1:439:0:	Å 
 65312:0:83:1:44:0:	Ş
@@ -850,6 +895,7 @@
 65312:0:83:1:49:0:	¹
 65312:0:83:1:50:0:	²
 65312:0:83:1:51:0:	³
+65312:0:83:1:517:0:	§
 65312:0:83:1:79:1:	§
 65312:0:83:1:86:0:	Å 
 65312:0:83:1:86:1:	Å 
@@ -859,12 +905,15 @@
 65312:0:84:0:44:0:	ţ
 65312:0:84:0:72:0:	þ
 65312:0:84:0:86:0:	ť
+65312:0:84:0:92:0:	ŧ
 65312:0:84:1:124:0:	Ŧ
 65312:0:84:1:439:0:	Ť
 65312:0:84:1:44:0:	Ţ
 65312:0:84:1:72:1:	Þ
 65312:0:84:1:86:0:	Ť
+65312:0:84:1:92:0:	Ŧ
 65312:0:85:0:126:0:	Å©
+65312:0:85:0:130:0:	û
 65312:0:85:0:151:0:	ů
 65312:0:85:0:152:0:	ü
 65312:0:85:0:160:0:	û
@@ -889,6 +938,7 @@
 65312:0:85:0:94:0:	û
 65312:0:85:0:96:0:	ù
 65312:0:85:1:126:0:	Ũ
+65312:0:85:1:130:0:	Û
 65312:0:85:1:151:0:	Å®
 65312:0:85:1:152:0:	Ü
 65312:0:85:1:160:0:	Û
@@ -964,8 +1014,12 @@
 65312:0:90:1:439:0:	Ž
 65312:0:90:1:46:0:	Å»
 65312:0:90:1:86:0:	Ž
+65312:0:92:0:67:0:	¢
+65312:0:92:0:67:1:	¢
+65312:0:92:0:84:0:	ŧ
+65312:0:92:0:84:1:	Ŧ
+65312:0:92:0:92:0:	¦
 65312:0:94:0:32:0:	^
-65312:0:94:0:33:0:	¦
 65312:0:94:0:45:0:	¯
 65312:0:94:0:46:0:	·
 65312:0:94:0:47:0:	|
@@ -973,6 +1027,7 @@
 65312:0:94:0:49:0:	¹
 65312:0:94:0:50:0:	²
 65312:0:94:0:51:0:	³
+65312:0:94:0:517:0:	¦
 65312:0:94:0:523:0:	¯
 65312:0:94:0:65:0:	â
 65312:0:94:0:65:1:	Â
@@ -1005,6 +1060,8 @@
 65312:0:96:0:79:1:	Ò
 65312:0:96:0:85:0:	ù
 65312:0:96:0:85:1:	Ù
+69:32:	€
+69:33:	€
 84:3:124:0:124:0:	¦
 84:3:124:0:67:0:	¢
 84:3:124:0:67:1:	¢
@@ -1021,6 +1078,79 @@
 84:3:126:0:79:1:	Õ
 84:3:126:0:85:0:	Å©
 84:3:126:0:85:1:	Ũ
+84:3:128:0:32:0:	`
+84:3:128:0:65:0:	à
+84:3:128:0:65:1:	À
+84:3:128:0:69:0:	è
+84:3:128:0:69:1:	È
+84:3:128:0:73:0:	ì
+84:3:128:0:73:1:	Ì
+84:3:128:0:79:0:	ò
+84:3:128:0:79:1:	Ò
+84:3:128:0:85:0:	ù
+84:3:128:0:85:1:	Ù
+84:3:129:0:32:0:	'
+84:3:129:0:39:0:	´
+84:3:129:0:65:0:	á
+84:3:129:0:65:1:	Á
+84:3:129:0:67:0:	ć
+84:3:129:0:67:1:	Ć
+84:3:129:0:69:0:	é
+84:3:129:0:69:1:	É
+84:3:129:0:73:0:	í
+84:3:129:0:73:1:	Í
+84:3:129:0:76:0:	ĺ
+84:3:129:0:76:1:	Ĺ
+84:3:129:0:78:0:	ń
+84:3:129:0:78:1:	Ń
+84:3:129:0:79:0:	ó
+84:3:129:0:79:1:	Ó
+84:3:129:0:82:0:	ŕ
+84:3:129:0:82:1:	Ŕ
+84:3:129:0:83:0:	ś
+84:3:129:0:83:1:	Ś
+84:3:129:0:85:0:	ú
+84:3:129:0:85:1:	Ú
+84:3:129:0:89:0:	ý
+84:3:129:0:89:1:	Ý
+84:3:129:0:90:0:	ź
+84:3:129:0:90:1:	Ź
+84:3:130:0:130:0:	»
+84:3:130:0:32:0:	^
+84:3:130:0:45:0:	¯
+84:3:130:0:46:0:	·
+84:3:130:0:47:0:	|
+84:3:130:0:48:0:	°
+84:3:130:0:49:0:	¹
+84:3:130:0:50:0:	²
+84:3:130:0:51:0:	³
+84:3:130:0:517:0:	¦
+84:3:130:0:523:0:	¯
+84:3:130:0:65:0:	â
+84:3:130:0:65:1:	Â
+84:3:130:0:67:0:	ĉ
+84:3:130:0:67:1:	Ĉ
+84:3:130:0:69:0:	ê
+84:3:130:0:69:1:	Ê
+84:3:130:0:71:0:	ĝ
+84:3:130:0:71:1:	Ĝ
+84:3:130:0:72:0:	ĥ
+84:3:130:0:72:1:	Ĥ
+84:3:130:0:73:0:	î
+84:3:130:0:73:1:	Î
+84:3:130:0:74:0:	ĵ
+84:3:130:0:74:1:	Ä´
+84:3:130:0:79:0:	ô
+84:3:130:0:79:1:	Ô
+84:3:130:0:83:0:	ŝ
+84:3:130:0:83:1:	Ŝ
+84:3:130:0:85:0:	û
+84:3:130:0:85:1:	Û
+84:3:130:0:87:0:	ŵ
+84:3:130:0:87:1:	Å´
+84:3:130:0:89:0:	Å·
+84:3:130:0:89:1:	Ŷ
+84:3:131:0:32:0:	~
 84:3:131:0:65:0:	ã
 84:3:131:0:65:1:	Ã
 84:3:131:0:73:0:	Ä©
@@ -1031,9 +1161,32 @@
 84:3:131:0:79:1:	Õ
 84:3:131:0:85:0:	Å©
 84:3:131:0:85:1:	Ũ
+84:3:132:0:69:0:	ē
+84:3:132:0:69:1:	Ē
+84:3:132:0:73:0:	Ä«
+84:3:132:0:73:1:	Ī
+84:3:132:0:79:0:	ō
+84:3:132:0:79:1:	Ō
+84:3:132:0:85:0:	Å«
+84:3:132:0:85:1:	Ū
+84:3:135:0:152:0:	¨
+84:3:135:0:32:0:	¨
+84:3:135:0:65:0:	ä
+84:3:135:0:65:1:	Ä
+84:3:135:0:69:0:	ë
+84:3:135:0:69:1:	Ë
+84:3:135:0:73:0:	ï
+84:3:135:0:73:1:	Ï
+84:3:135:0:79:0:	ö
+84:3:135:0:79:1:	Ö
+84:3:135:0:85:0:	ü
+84:3:135:0:85:1:	Ü
+84:3:135:0:89:0:	ÿ
+84:3:135:0:89:1:	Ÿ
 84:3:151:0:48:0:	°
 84:3:151:0:65:0:	å
 84:3:151:0:65:1:	Å
+84:3:152:0:135:0:	¨
 84:3:152:0:152:0:	¨
 84:3:152:0:32:0:	˝
 84:3:152:0:65:0:	ä
@@ -1140,6 +1293,11 @@
 84:3:222:0:90:0:	ź
 84:3:222:0:90:1:	ľ
 84:3:32:0:126:0:	~
+84:3:32:0:128:0:	`
+84:3:32:0:129:0:	'
+84:3:32:0:130:0:	^
+84:3:32:0:131:0:	~
+84:3:32:0:135:0:	¨
 84:3:32:0:160:0:	^
 84:3:32:0:176:0:	°
 84:3:32:0:192:0:	`
@@ -1150,15 +1308,11 @@
 84:3:32:0:439:0:	ˇ
 84:3:32:0:445:0:	˝
 84:3:32:0:45:0:	~
+84:3:32:0:514:0:	^
 84:3:32:0:86:0:	ˇ
 84:3:32:0:94:0:	^
 84:3:32:0:96:0:	`
-84:3:33:0:33:0:	¡
-84:3:33:0:80:0:	¶
-84:3:33:0:80:1:	¶
-84:3:33:0:83:0:	§
-84:3:33:0:83:1:	§
-84:3:33:0:94:0:	¦
+84:3:39:0:129:0:	´
 84:3:39:0:32:0:	'
 84:3:39:0:39:0:	´
 84:3:39:0:65:0:	á
@@ -1227,13 +1381,14 @@
 84:3:445:0:79:1:	Ő
 84:3:445:0:85:0:	ű
 84:3:445:0:85:1:	Å°
+84:3:45:0:130:0:	¯
 84:3:45:0:32:0:	~
 84:3:45:0:40:0:	{
 84:3:45:0:41:0:	}
 84:3:45:0:44:0:	¬
 84:3:45:0:45:0:	­
 84:3:45:0:513:0:	÷
-84:3:45:0:521:0:	±
+84:3:45:0:514:0:	¯
 84:3:45:0:65:0:	ã
 84:3:45:0:65:1:	Ã
 84:3:45:0:68:0:	ð
@@ -1247,7 +1402,10 @@
 84:3:45:0:89:0:	¥
 84:3:45:0:89:1:	¥
 84:3:45:0:94:0:	¯
+84:3:45:1:521:0:	±
+84:3:46:0:130:0:	·
 84:3:46:0:46:0:	·
+84:3:46:0:514:0:	·
 84:3:46:0:67:0:	ċ
 84:3:46:0:67:1:	Ċ
 84:3:46:0:71:0:	Ä¡
@@ -1259,8 +1417,10 @@
 84:3:46:0:90:0:	ż
 84:3:46:0:90:1:	Å»
 84:3:46:0:94:0:	·
+84:3:47:0:130:0:	|
 84:3:47:0:153:0:	\
-84:3:47:0:47:0:	\
+84:3:47:0:47:0:	¿
+84:3:47:0:514:0:	|
 84:3:47:0:67:0:	¢
 84:3:47:0:67:1:	¢
 84:3:47:0:68:0:	đ
@@ -1270,7 +1430,9 @@
 84:3:47:0:85:0:	µ
 84:3:47:0:85:1:	µ
 84:3:47:0:94:0:	|
+84:3:48:0:130:0:	°
 84:3:48:0:151:0:	°
+84:3:48:0:514:0:	°
 84:3:48:0:67:0:	©
 84:3:48:0:67:1:	©
 84:3:48:0:79:1:	°
@@ -1279,21 +1441,71 @@
 84:3:48:0:88:0:	¤
 84:3:48:0:88:1:	¤
 84:3:48:0:94:0:	°
+84:3:49:0:130:0:	¹
 84:3:49:0:50:0:	½
+84:3:49:0:514:0:	¹
 84:3:49:0:52:0:	¼
 84:3:49:0:83:0:	¹
 84:3:49:0:83:1:	¹
 84:3:49:0:94:0:	¹
+84:3:50:0:130:0:	²
+84:3:50:0:514:0:	²
 84:3:50:0:83:0:	²
 84:3:50:0:83:1:	²
 84:3:50:0:94:0:	²
+84:3:51:0:130:0:	³
+84:3:51:0:514:0:	³
 84:3:51:0:52:0:	¾
 84:3:51:0:83:0:	³
 84:3:51:0:83:1:	³
 84:3:51:0:94:0:	³
 84:3:513:0:45:0:	÷
+84:3:514:0:32:0:	^
+84:3:514:0:45:0:	¯
+84:3:514:0:46:0:	·
+84:3:514:0:47:0:	|
+84:3:514:0:48:0:	°
+84:3:514:0:49:0:	¹
+84:3:514:0:50:0:	²
+84:3:514:0:51:0:	³
+84:3:514:0:517:0:	¦
+84:3:514:0:523:0:	¯
+84:3:514:0:65:0:	â
+84:3:514:0:65:1:	Â
+84:3:514:0:67:0:	ĉ
+84:3:514:0:67:1:	Ĉ
+84:3:514:0:69:0:	ê
+84:3:514:0:69:1:	Ê
+84:3:514:0:71:0:	ĝ
+84:3:514:0:71:1:	Ĝ
+84:3:514:0:72:0:	ĥ
+84:3:514:0:72:1:	Ĥ
+84:3:514:0:73:0:	î
+84:3:514:0:73:1:	Î
+84:3:514:0:74:0:	ĵ
+84:3:514:0:74:1:	Ä´
+84:3:514:0:79:0:	ô
+84:3:514:0:79:1:	Ô
+84:3:514:0:83:0:	ŝ
+84:3:514:0:83:1:	Ŝ
+84:3:514:0:85:0:	û
+84:3:514:0:85:1:	Û
+84:3:514:0:87:0:	ŵ
+84:3:514:0:87:1:	Å´
+84:3:514:0:89:0:	Å·
+84:3:514:0:89:1:	Ŷ
+84:3:517:0:130:0:	¦
+84:3:517:0:514:0:	¦
+84:3:517:0:517:0:	¡
+84:3:517:0:80:0:	¶
+84:3:517:0:80:1:	¶
+84:3:517:0:83:0:	§
+84:3:517:0:83:1:	§
+84:3:517:0:94:0:	¦
 84:3:521:0:45:0:	±
 84:3:521:0:521:0:	#
+84:3:523:0:130:0:	¯
+84:3:523:0:514:0:	¯
 84:3:523:0:523:0:	¯
 84:3:523:0:65:0:	ª
 84:3:523:0:65:1:	ª
@@ -1317,6 +1529,11 @@
 84:3:61:0:89:1:	¥
 84:3:63:0:63:0:	¿
 84:3:65:0:126:0:	ã
+84:3:65:0:128:0:	à
+84:3:65:0:129:0:	á
+84:3:65:0:130:0:	â
+84:3:65:0:131:0:	ã
+84:3:65:0:135:0:	ä
 84:3:65:0:151:0:	å
 84:3:65:0:152:0:	ä
 84:3:65:0:160:0:	â
@@ -1329,6 +1546,7 @@
 84:3:65:0:418:0:	ă
 84:3:65:0:434:0:	ą
 84:3:65:0:45:0:	ã
+84:3:65:0:514:0:	â
 84:3:65:0:523:0:	ª
 84:3:65:0:65:0:	ą
 84:3:65:0:65:1:	Ą
@@ -1339,6 +1557,11 @@
 84:3:65:0:94:0:	â
 84:3:65:0:96:0:	à
 84:3:65:1:126:0:	Ã
+84:3:65:1:128:0:	À
+84:3:65:1:129:0:	Á
+84:3:65:1:130:0:	Â
+84:3:65:1:131:0:	Ã
+84:3:65:1:135:0:	Ä
 84:3:65:1:151:0:	Å
 84:3:65:1:152:0:	Ä
 84:3:65:1:160:0:	Â
@@ -1350,6 +1573,7 @@
 84:3:65:1:418:0:	Ă
 84:3:65:1:434:0:	Ą
 84:3:65:1:45:0:	Ã
+84:3:65:1:514:0:	Â
 84:3:65:1:523:0:	ª
 84:3:65:1:65:0:	Ą
 84:3:65:1:65:1:	@
@@ -1360,6 +1584,8 @@
 84:3:66:0:86:0:	¦
 84:3:66:1:86:1:	¦
 84:3:67:0:124:0:	¢
+84:3:67:0:129:0:	ć
+84:3:67:0:130:0:	ĉ
 84:3:67:0:160:0:	ĉ
 84:3:67:0:180:0:	ć
 84:3:67:0:222:0:	ć
@@ -1369,12 +1595,16 @@
 84:3:67:0:46:0:	ċ
 84:3:67:0:47:0:	¢
 84:3:67:0:48:0:	©
+84:3:67:0:514:0:	ĉ
 84:3:67:0:61:0:	€
 84:3:67:0:79:0:	©
 84:3:67:0:79:1:	©
 84:3:67:0:86:0:	č
+84:3:67:0:92:0:	¢
 84:3:67:0:94:0:	ĉ
 84:3:67:1:124:0:	¢
+84:3:67:1:129:0:	Ć
+84:3:67:1:130:0:	Ĉ
 84:3:67:1:160:0:	Ĉ
 84:3:67:1:180:0:	Ć
 84:3:67:1:222:0:	Ć
@@ -1384,10 +1614,12 @@
 84:3:67:1:46:0:	Ċ
 84:3:67:1:47:0:	¢
 84:3:67:1:48:0:	©
+84:3:67:1:514:0:	Ĉ
 84:3:67:1:61:0:	€
 84:3:67:1:79:0:	©
 84:3:67:1:79:1:	©
 84:3:67:1:86:0:	Č
+84:3:67:1:92:0:	¢
 84:3:67:1:94:0:	Ĉ
 84:3:68:0:439:0:	ď
 84:3:68:0:45:0:	ð
@@ -1396,6 +1628,11 @@
 84:3:68:1:439:0:	Ď
 84:3:68:1:45:0:	Ð
 84:3:68:1:86:0:	Ď
+84:3:69:0:128:0:	è
+84:3:69:0:129:0:	é
+84:3:69:0:130:0:	ê
+84:3:69:0:132:0:	ē
+84:3:69:0:135:0:	ë
 84:3:69:0:152:0:	ë
 84:3:69:0:160:0:	ê
 84:3:69:0:168:0:	ë
@@ -1406,12 +1643,18 @@
 84:3:69:0:434:0:	ę
 84:3:69:0:439:0:	ě
 84:3:69:0:46:0:	ė
+84:3:69:0:514:0:	ê
 84:3:69:0:523:0:	ē
 84:3:69:0:61:0:	€
 84:3:69:0:65:0:	ę
 84:3:69:0:86:0:	ě
 84:3:69:0:94:0:	ê
 84:3:69:0:96:0:	è
+84:3:69:1:128:0:	È
+84:3:69:1:129:0:	É
+84:3:69:1:130:0:	Ê
+84:3:69:1:132:0:	Ē
+84:3:69:1:135:0:	Ë
 84:3:69:1:152:0:	Ë
 84:3:69:1:160:0:	Ê
 84:3:69:1:168:0:	Ë
@@ -1422,27 +1665,42 @@
 84:3:69:1:434:0:	Ę
 84:3:69:1:439:0:	Ě
 84:3:69:1:46:0:	Ė
+84:3:69:1:514:0:	Ê
 84:3:69:1:523:0:	Ē
 84:3:69:1:61:0:	€
 84:3:69:1:65:0:	Ę
 84:3:69:1:86:0:	Ě
 84:3:69:1:94:0:	Ê
 84:3:69:1:96:0:	È
+84:3:71:0:130:0:	ĝ
 84:3:71:0:160:0:	ĝ
 84:3:71:0:44:0:	ģ
 84:3:71:0:46:0:	Ä¡
+84:3:71:0:514:0:	ĝ
 84:3:71:0:85:0:	ğ
 84:3:71:0:94:0:	ĝ
+84:3:71:1:130:0:	Ĝ
 84:3:71:1:160:0:	Ĝ
 84:3:71:1:44:0:	Ģ
 84:3:71:1:46:0:	Ä 
+84:3:71:1:514:0:	Ĝ
 84:3:71:1:85:0:	Ğ
 84:3:71:1:94:0:	Ĝ
+84:3:72:0:130:0:	ĥ
 84:3:72:0:160:0:	ĥ
+84:3:72:0:514:0:	ĥ
 84:3:72:0:94:0:	ĥ
+84:3:72:1:130:0:	Ĥ
 84:3:72:1:160:0:	Ĥ
+84:3:72:1:514:0:	Ĥ
 84:3:72:1:94:0:	Ĥ
 84:3:73:0:126:0:	Ä©
+84:3:73:0:128:0:	ì
+84:3:73:0:129:0:	í
+84:3:73:0:130:0:	î
+84:3:73:0:131:0:	Ä©
+84:3:73:0:132:0:	Ä«
+84:3:73:0:135:0:	ï
 84:3:73:0:152:0:	ï
 84:3:73:0:160:0:	î
 84:3:73:0:180:0:	í
@@ -1450,11 +1708,18 @@
 84:3:73:0:222:0:	í
 84:3:73:0:39:0:	í
 84:3:73:0:46:0:	ı
+84:3:73:0:514:0:	î
 84:3:73:0:523:0:	Ä«
 84:3:73:0:65:0:	į
 84:3:73:0:94:0:	î
 84:3:73:0:96:0:	ì
 84:3:73:1:126:0:	Ĩ
+84:3:73:1:128:0:	Ì
+84:3:73:1:129:0:	Í
+84:3:73:1:130:0:	Î
+84:3:73:1:131:0:	Ĩ
+84:3:73:1:132:0:	Ī
+84:3:73:1:135:0:	Ï
 84:3:73:1:152:0:	Ï
 84:3:73:1:160:0:	Î
 84:3:73:1:180:0:	Í
@@ -1462,17 +1727,24 @@
 84:3:73:1:222:0:	Í
 84:3:73:1:39:0:	Í
 84:3:73:1:46:0:	Ä°
+84:3:73:1:514:0:	Î
 84:3:73:1:523:0:	Ī
 84:3:73:1:65:0:	Ä®
 84:3:73:1:94:0:	Î
 84:3:73:1:96:0:	Ì
+84:3:74:0:130:0:	ĵ
 84:3:74:0:160:0:	ĵ
+84:3:74:0:514:0:	ĵ
 84:3:74:0:94:0:	ĵ
+84:3:74:1:130:0:	Ä´
 84:3:74:1:160:0:	Ä´
+84:3:74:1:514:0:	Ä´
 84:3:74:1:94:0:	Ä´
 84:3:75:0:44:0:	Ä·
 84:3:75:0:75:0:	ĸ
 84:3:75:1:44:0:	Ķ
+84:3:76:0:129:0:	ĺ
+84:3:76:0:130:0:	ľ
 84:3:76:0:160:0:	ľ
 84:3:76:0:180:0:	ĺ
 84:3:76:0:222:0:	ĺ
@@ -1483,6 +1755,8 @@
 84:3:76:0:47:0:	ł
 84:3:76:0:61:0:	£
 84:3:76:0:86:0:	|
+84:3:76:1:129:0:	Ĺ
+84:3:76:1:130:0:	Ľ
 84:3:76:1:160:0:	Ľ
 84:3:76:1:180:0:	Ĺ
 84:3:76:1:222:0:	Ĺ
@@ -1494,6 +1768,8 @@
 84:3:76:1:61:0:	£
 84:3:76:1:86:1:	|
 84:3:78:0:126:0:	ñ
+84:3:78:0:129:0:	ń
+84:3:78:0:131:0:	ñ
 84:3:78:0:180:0:	ń
 84:3:78:0:222:0:	ń
 84:3:78:0:39:0:	ń
@@ -1503,6 +1779,8 @@
 84:3:78:0:78:0:	ŋ
 84:3:78:0:86:0:	ň
 84:3:78:1:126:0:	Ñ
+84:3:78:1:129:0:	Ń
+84:3:78:1:131:0:	Ñ
 84:3:78:1:180:0:	Ń
 84:3:78:1:222:0:	Ń
 84:3:78:1:39:0:	Ń
@@ -1512,6 +1790,12 @@
 84:3:78:1:78:1:	Ŋ
 84:3:78:1:86:0:	Ň
 84:3:79:0:126:0:	õ
+84:3:79:0:128:0:	ò
+84:3:79:0:129:0:	ó
+84:3:79:0:130:0:	ô
+84:3:79:0:131:0:	õ
+84:3:79:0:132:0:	ō
+84:3:79:0:135:0:	ö
 84:3:79:0:152:0:	ö
 84:3:79:0:160:0:	ô
 84:3:79:0:168:0:	ö
@@ -1522,6 +1806,7 @@
 84:3:79:0:445:0:	ő
 84:3:79:0:45:0:	õ
 84:3:79:0:47:0:	ø
+84:3:79:0:514:0:	ô
 84:3:79:0:523:0:	º
 84:3:79:0:67:0:	©
 84:3:79:0:67:1:	©
@@ -1533,6 +1818,12 @@
 84:3:79:0:94:0:	ô
 84:3:79:0:96:0:	ò
 84:3:79:1:126:0:	Õ
+84:3:79:1:128:0:	Ò
+84:3:79:1:129:0:	Ó
+84:3:79:1:130:0:	Ô
+84:3:79:1:131:0:	Õ
+84:3:79:1:132:0:	Ō
+84:3:79:1:135:0:	Ö
 84:3:79:1:152:0:	Ö
 84:3:79:1:160:0:	Ô
 84:3:79:1:168:0:	Ö
@@ -1543,6 +1834,7 @@
 84:3:79:1:445:0:	Ő
 84:3:79:1:45:0:	Õ
 84:3:79:1:47:0:	Ø
+84:3:79:1:514:0:	Ô
 84:3:79:1:523:0:	º
 84:3:79:1:67:0:	©
 84:3:79:1:67:1:	©
@@ -1553,14 +1845,16 @@
 84:3:79:1:88:1:	¤
 84:3:79:1:94:0:	Ô
 84:3:79:1:96:0:	Ò
-84:3:80:0:33:0:	¶
-84:3:80:1:33:0:	¶
+84:3:80:0:517:0:	¶
+84:3:80:1:517:0:	¶
+84:3:82:0:129:0:	ŕ
 84:3:82:0:180:0:	ŕ
 84:3:82:0:222:0:	ŕ
 84:3:82:0:39:0:	ŕ
 84:3:82:0:439:0:	ř
 84:3:82:0:44:0:	ŗ
 84:3:82:0:86:0:	ř
+84:3:82:1:129:0:	Ŕ
 84:3:82:1:180:0:	Ŕ
 84:3:82:1:222:0:	Ŕ
 84:3:82:1:39:0:	Ŕ
@@ -1568,10 +1862,11 @@
 84:3:82:1:44:0:	Ŗ
 84:3:82:1:79:1:	®
 84:3:82:1:86:0:	Ř
+84:3:83:0:129:0:	ś
+84:3:83:0:130:0:	ŝ
 84:3:83:0:160:0:	ŝ
 84:3:83:0:180:0:	ś
 84:3:83:0:222:0:	ś
-84:3:83:0:33:0:	§
 84:3:83:0:39:0:	ś
 84:3:83:0:439:0:	Å¡
 84:3:83:0:44:0:	ş
@@ -1579,15 +1874,18 @@
 84:3:83:0:49:0:	¹
 84:3:83:0:50:0:	²
 84:3:83:0:51:0:	³
+84:3:83:0:514:0:	ŝ
+84:3:83:0:517:0:	§
 84:3:83:0:79:0:	§
 84:3:83:0:83:0:	ß
 84:3:83:0:86:0:	Å¡
 84:3:83:0:86:1:	Å¡
 84:3:83:0:94:0:	ŝ
+84:3:83:1:129:0:	Ś
+84:3:83:1:130:0:	Ŝ
 84:3:83:1:160:0:	Ŝ
 84:3:83:1:180:0:	Ś
 84:3:83:1:222:0:	Ś
-84:3:83:1:33:0:	§
 84:3:83:1:39:0:	Ś
 84:3:83:1:439:0:	Å 
 84:3:83:1:44:0:	Ş
@@ -1595,6 +1893,8 @@
 84:3:83:1:49:0:	¹
 84:3:83:1:50:0:	²
 84:3:83:1:51:0:	³
+84:3:83:1:514:0:	Ŝ
+84:3:83:1:517:0:	§
 84:3:83:1:79:1:	§
 84:3:83:1:86:0:	Å 
 84:3:83:1:86:1:	Å 
@@ -1604,12 +1904,20 @@
 84:3:84:0:44:0:	ţ
 84:3:84:0:72:0:	þ
 84:3:84:0:86:0:	ť
+84:3:84:0:92:0:	ŧ
 84:3:84:1:124:0:	Ŧ
 84:3:84:1:439:0:	Ť
 84:3:84:1:44:0:	Ţ
 84:3:84:1:72:1:	Þ
 84:3:84:1:86:0:	Ť
+84:3:84:1:92:0:	Ŧ
 84:3:85:0:126:0:	Å©
+84:3:85:0:128:0:	ù
+84:3:85:0:129:0:	ú
+84:3:85:0:130:0:	û
+84:3:85:0:131:0:	Å©
+84:3:85:0:132:0:	Å«
+84:3:85:0:135:0:	ü
 84:3:85:0:151:0:	ů
 84:3:85:0:152:0:	ü
 84:3:85:0:160:0:	û
@@ -1624,6 +1932,7 @@
 84:3:85:0:445:0:	ű
 84:3:85:0:46:0:	ů
 84:3:85:0:47:0:	µ
+84:3:85:0:514:0:	û
 84:3:85:0:523:0:	Å«
 84:3:85:0:65:0:	ų
 84:3:85:0:71:0:	ğ
@@ -1634,6 +1943,12 @@
 84:3:85:0:94:0:	û
 84:3:85:0:96:0:	ù
 84:3:85:1:126:0:	Ũ
+84:3:85:1:128:0:	Ù
+84:3:85:1:129:0:	Ú
+84:3:85:1:130:0:	Û
+84:3:85:1:131:0:	Ũ
+84:3:85:1:132:0:	Ū
+84:3:85:1:135:0:	Ü
 84:3:85:1:151:0:	Å®
 84:3:85:1:152:0:	Ü
 84:3:85:1:160:0:	Û
@@ -1647,6 +1962,7 @@
 84:3:85:1:445:0:	Å°
 84:3:85:1:46:0:	Å®
 84:3:85:1:47:0:	µ
+84:3:85:1:514:0:	Û
 84:3:85:1:523:0:	Ū
 84:3:85:1:65:0:	Ų
 84:3:85:1:85:0:	Ŭ
@@ -1678,6 +1994,10 @@
 84:3:86:1:76:1:	|
 84:3:86:1:83:0:	Å¡
 84:3:86:1:83:1:	Å 
+84:3:87:0:130:0:	ŵ
+84:3:87:0:514:0:	ŵ
+84:3:87:1:130:0:	Å´
+84:3:87:1:514:0:	Å´
 84:3:88:0:48:0:	¤
 84:3:88:0:79:0:	¤
 84:3:88:0:79:1:	¤
@@ -1685,32 +2005,46 @@
 84:3:88:1:48:0:	¤
 84:3:88:1:79:0:	¤
 84:3:88:1:79:1:	¤
+84:3:89:0:129:0:	ý
+84:3:89:0:130:0:	Å·
+84:3:89:0:135:0:	ÿ
 84:3:89:0:152:0:	ÿ
 84:3:89:0:180:0:	ý
 84:3:89:0:222:0:	ý
 84:3:89:0:39:0:	ý
 84:3:89:0:45:0:	¥
+84:3:89:0:514:0:	Å·
 84:3:89:0:61:0:	¥
+84:3:89:1:129:0:	Ý
+84:3:89:1:130:0:	Ŷ
+84:3:89:1:135:0:	Ÿ
 84:3:89:1:152:0:	Ÿ
 84:3:89:1:180:0:	Ý
 84:3:89:1:222:0:	Ý
 84:3:89:1:39:0:	Ý
 84:3:89:1:45:0:	¥
+84:3:89:1:514:0:	Ŷ
 84:3:89:1:61:0:	¥
+84:3:90:0:129:0:	ź
 84:3:90:0:180:0:	ź
 84:3:90:0:222:0:	ź
 84:3:90:0:39:0:	ź
 84:3:90:0:439:0:	ž
 84:3:90:0:46:0:	ż
 84:3:90:0:86:0:	ž
+84:3:90:1:129:0:	Ź
 84:3:90:1:180:0:	ľ
 84:3:90:1:222:0:	ľ
 84:3:90:1:39:0:	Ź
 84:3:90:1:439:0:	Ž
 84:3:90:1:46:0:	Å»
 84:3:90:1:86:0:	Ž
+84:3:92:0:67:0:	¢
+84:3:92:0:67:1:	¢
+84:3:92:0:84:0:	ŧ
+84:3:92:0:84:1:	Ŧ
+84:3:92:0:92:0:	¦
 84:3:94:0:32:0:	^
-84:3:94:0:33:0:	¦
 84:3:94:0:45:0:	¯
 84:3:94:0:46:0:	·
 84:3:94:0:47:0:	|
@@ -1718,6 +2052,7 @@
 84:3:94:0:49:0:	¹
 84:3:94:0:50:0:	²
 84:3:94:0:51:0:	³
+84:3:94:0:517:0:	¦
 84:3:94:0:523:0:	¯
 84:3:94:0:65:0:	â
 84:3:94:0:65:1:	Â

leif-unit-fix-freeze-with-flipping-focus-r2664.patch:
 le.c         |   12 +++++++++---
 le.h         |    1 +
 unit_input.c |   10 +++++-----
 3 files changed, 15 insertions(+), 8 deletions(-)

--- NEW FILE leif-unit-fix-freeze-with-flipping-focus-r2664.patch ---
Index: leif/unit/leif/unit_input.c
===================================================================
--- leif/unit/leif/unit_input.c	(revision 2663)
+++ leif/unit/leif/unit_input.c	(revision 2664)
@@ -639,20 +639,20 @@
 void
 unit_desktop_switch_hotkey_profile(
     unit_desktop_t *udp,
-    iml_desktop_t *desktop
+    iml_session_t *s
 )
 {
     iml_hkc       *hkc;
     iml_hkc_create_t le_hkc_create;
     iml_hkc_free_t le_hkc_free;
 
-    le_hkc_create = (iml_hkc_create_t) (desktop->If->hkc_get_function("_hkc_create"));
-    le_hkc_free = (iml_hkc_free_t) (desktop->If->hkc_get_function("_hkc_free"));
+    le_hkc_create = (iml_hkc_create_t) (s->desktop->If->hkc_get_function("_hkc_create"));
+    le_hkc_free = (iml_hkc_free_t) (s->desktop->If->hkc_get_function("_hkc_free"));
 
-    hkc = le_hkc_create("unitle", IML_HKC_TYPE_DESKTOP, desktop);
+    hkc = le_hkc_create("unitle", IML_HKC_TYPE_DESKTOP, s->desktop);
 
     unit_desktop_set_curr_profile_id(udp, IME_HOTKEY_PROFILE_TWO);
-    desktop->If->switchLEProfile(desktop, IME_HOTKEY_PROFILE_TWO, &leName);
+    s->desktop->If->switchLEProfile(s, IME_HOTKEY_PROFILE_TWO, &leName);
 
     le_hkc_free(hkc);
 }
Index: leif/unit/leif/le.c
===================================================================
--- leif/unit/leif/le.c	(revision 2663)
+++ leif/unit/leif/le.c	(revision 2664)
@@ -98,7 +98,7 @@
 extern int unit_desktop_load_engines(unit_desktop_t *udp, iml_desktop_t *desktop);
 extern void unit_desktop_set_curr_profile_id(unit_desktop_t *udp, int profile_id);
 extern int unit_desktop_get_curr_profile_id(unit_desktop_t *udp);
-extern void unit_desktop_switch_hotkey_profile(unit_desktop_t *udp, iml_desktop_t *desktop);
+extern void unit_desktop_switch_hotkey_profile(unit_desktop_t *udp, iml_session_t *s);
 extern void unit_desktop_done(unit_desktop_t *udp);
 
 extern IMEBufferRec *ime_buffer_malloc();
@@ -520,7 +520,7 @@
 	   break;
 	  case SC_TRIGGER_ON_NOTIFY:
 	   proc_key_switch_conversion_event(udp, s, CONVERSION_ON, (char *)session_data->locale);
-           udp->unit_desktop_switch_hotkey_profile(udp, s->desktop);
+           udp->unit_desktop_switch_hotkey_profile(udp, s);
 	   break;
                 
 	  case SC_TRIGGER_OFF_NOTIFY:
@@ -529,6 +529,8 @@
 	   break;
                 
 	  case SC_REALIZE:
+	   log_f("SC_REALIZE [0x%x] \n", s);
+	   session_data->hkp_notify_flag = False;
 	   break;
 
 	  default:
@@ -554,6 +556,7 @@
 )
 {
     MyDataPerDesktop *desktop_data = (MyDataPerDesktop *)(s->desktop->specific_data);
+    MyDataPerSession *session_data = (MyDataPerSession *) s->specific_data;
     unit_desktop_t *udp = desktop_data->udp;
 
     log_f("if_le_SetSCFocus() s:%x, current_session:%x, udp:0x%x\n", (unsigned int)s, (unsigned int)desktop_data->current_session, (unsigned int)desktop_data->udp);
@@ -561,7 +564,10 @@
     desktop_data->current_session = s;
     desktop_data->udp->s = s;
     le_status_draw(udp, s);
-    udp->unit_desktop_switch_hotkey_profile(udp, s->desktop);
+    if (!session_data->hkp_notify_flag) {
+      udp->unit_desktop_switch_hotkey_profile(udp, s);
+      session_data->hkp_notify_flag = True;
+    }
     /*
       if (s->desktop->session_count == 1) {
       if (!add_listener_flag) {
Index: leif/unit/leif/le.h
===================================================================
--- leif/unit/leif/le.h	(revision 2663)
+++ leif/unit/leif/le.h	(revision 2664)
@@ -79,4 +79,5 @@
   TClientType		client_type;
   char 			*locale;
   IMEBuffer 		ime_buffer;
+  int 			hkp_notify_flag;
 } MyDataPerSession;

leif-unit-fix-key-twice-r2614-162646.patch:
 key_event.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

--- NEW FILE leif-unit-fix-key-twice-r2614-162646.patch ---
Index: leif/unit/leif/key_event.c
===================================================================
--- leif/unit/leif/key_event.c	(revision 2613)
+++ leif/unit/leif/key_event.c	(revision 2614)
@@ -566,9 +566,10 @@
 								   &ime_keyevent, ime_args, 
 								   session_data->ime_buffer);
 
-    if (ret == IME_NOT_USED_KEY)
+    if (ret == IME_NOT_USED_KEY) {
 	iml_sendback_key(s, key_event);
-    else if (ret == RETURN_KEY) {
+	return;
+    } else if (ret == RETURN_KEY) {
 	key_event->keyCode = IM_VK_ENTER;
 	key_event->keyChar = 0;
 	key_event->modifier = 0;


Index: iiimf.spec
===================================================================
RCS file: /cvs/dist/rpms/iiimf/devel/iiimf.spec,v
retrieving revision 1.63
retrieving revision 1.64
diff -u -r1.63 -r1.64
--- iiimf.spec	7 Jul 2005 11:47:09 -0000	1.63
+++ iiimf.spec	20 Jul 2005 10:38:27 -0000	1.64
@@ -36,7 +36,7 @@
 Version: 12.2
 ## for builds suffixed with the svn release please only increment the leading release number when updating
 # append .svn%{revision} for snapshots
-Release: 7
+Release: 8
 License: Distributable
 Source: %{name}-src-%{srclabel}.tar.bz2
 Source2: iiimd-init.d
@@ -77,8 +77,9 @@
 
 ## IIIMGCF patches (300-)
 Patch300: im-sdk-iiimgcf-warning.patch
-Patch302: iiimgcf-event-status-done.patch
-Patch303: iiimgcf-fix-memory-leak-r2660.patch
+Patch301: iiimgcf-event-status-done.patch
+Patch302: iiimgcf-fix-memory-leak-r2660.patch
+Patch303: iiimgcf-fix-hang-r2757.patch
 ### RH-specific (+50~)
 Patch350: iiimgcf-revert-to-r2562-for-slowness-workaround.patch
 
@@ -91,6 +92,7 @@
 
 ## IIIMSF patches (600-)
 Patch600: im-sdk-11.4-iiimsf-daemon.patch
+Patch601: iiimsf-fix-memory-leak-r2764.patch
 ### RH-specific (+50~)
 Patch650: iiimsf-rh-debuginfo.patch
 Patch651: iiimsf-rh-per-user-hotkey.patch
@@ -114,6 +116,7 @@
 #Patch854: xiiimp-xft-statusarea-147457.patch
 
 ## IIIMP patches (900-)
+Patch900: iiimp-fix-memory-leak-r2770.patch
 ### RH-specific (+50~)
 Patch950: iiimp-revert-to-r2562-for-slowness-workaround.patch
 
@@ -154,6 +157,9 @@
 ### RH-specific (+50~)
 
 ## LEIF(UNIT) patches (2800-)
+Patch2800: leif-unit-fix-key-twice-r2614-162646.patch
+Patch2801: leif-unit-fix-freeze-with-flipping-focus-r2664.patch
+Patch2802: leif-unit-fix-deadkey-sequence-r2729.patch
 ### RH-specific (+50~)
 Patch2850: leif-unit-rh-fix-build-20040203.patch
 Patch2851: leif-unit-xdict-silence-txt2bin.patch
@@ -416,8 +422,9 @@
 ### RH-specific (+50~)
 ## IIIMGCF patches (300-)
 %patch300 -p1 -b .300-warnings
-%patch302 -p1 -b .302-status_end
-%patch303 -p0 -b .303-memleak
+%patch301 -p1 -b .301-status_end
+%patch302 -p0 -b .302-memleak
+%patch303 -p0 -b .303-fix-hang
 ### RH-specific (+50~)
 %patch350 -p0 -R -b .350-revert-to-r2562
 ## IIIMJCF patches (400-)
@@ -427,6 +434,7 @@
 %patch550 -p1 -b .550-build
 ## IIIMSF patches (600-)
 %patch600 -p1 -b .600-rh-daemon
+%patch601 -p0 -b .601-fix-memleak
 ### RH-specific (+50~)
 %patch650 -p1 -b .650-rh-debuginfo
 %patch651 -p1 -b .651-rh-per-user-hotkey
@@ -445,6 +453,7 @@
 #%%patch853 -p1 -b .853-xft-highlight
 #%%patch854 -p1 -b .854-xft-statusarea
 ## IIIMP patches (900-)
+%patch900 -p0 -b .900-fix-memleak
 ### RH-specific (+50~)
 %patch950 -p0 -R -b .950-revert-to-r2562
 ## IIIMCF patches (1000-)
@@ -473,6 +482,9 @@
 ## LEIF(Sun Traditional Chinese) patches (2700-)
 ### RH-specific (+50~)
 ## LEIF(UNIT) patches (2800-)
+%patch2800 -p0 -b .2800-twice
+%patch2801 -p0 -b .2801-freeze
+%patch2802 -p0 -b .2802-deadkey-seq
 ### RH-specific (+50~)
 %patch2850 -p1 -b .2850-rh-build-20040203
 %patch2851 -p1 -b .2851-verbose
@@ -1005,6 +1017,19 @@
 %endif
 
 %changelog
+* Thu Jul 20 2005 Akira TAGOH <tagoh redhat com> - 1:12.2-8
+- leif-unit-fix-key-twice-r2614-162646.patch: backported a patch from
+  upstream to get fixed the displaying character twice issue. (#162646)
+- leif-unit-fix-freeze-with-flipping-focus-r2664.patch: backported a patch
+  from upstream to get fixed the freeze issue with flipping focus.
+- leif-unit-fix-deadkey-sequence-r2729.patch: backported a patch from
+  upstream to get fixed the deadkey sequence issue.
+- iiimgcf-fix-hang-r2757.patch: backported a patch from upstream to get
+  fixed the applications freezes with pressing key during the focus is grabbed.
+- iiimsf-fix-memory-leak-r2764.patch: backported a patch from upstream to
+  get fixed the memory leak issue.
+- iiimp-fix-memory-leak-r2770.patch: likewise.
+
 * Thu Jul  7 2005 Akira TAGOH <tagoh redhat com> - 1:12.2-7
 - xiiimp-pango.patch: applied to show the glyphs on the status window
   and the candidate window with Pango. (#141723)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]