*** empty log message ***
[m17n/m17n-lib.git] / src / input-gui.c
index 8d5a0dc..65ebbbe 100644 (file)
@@ -35,7 +35,7 @@
     value is a pointer to the input driver @c minput_xim_driver.  See
     the documentation of @c minput_xim_driver for more detail.  */
 
-/***ja
+/***oldja
     @addtogroup m17nInputMethodWin
     @brief ¥¦¥£¥ó¥É¥¦¥·¥¹¥Æ¥à¾å¤ÎÆþÎϥ᥽¥Ã¥É¤Î¥µ¥Ý¡¼¥È
 
@@ -113,7 +113,7 @@ win_create_ic (MInputContext *ic)
 
   win_ic_info->preedit.win = mwin__create_window (frame, win_info->client);
   win_ic_info->preedit.control.two_dimensional = 1;
-  win_ic_info->preedit.control.as_image = 1;
+  win_ic_info->preedit.control.as_image = 0;
   win_ic_info->preedit.control.with_cursor = 1;
   win_ic_info->preedit.control.cursor_width = 1;
   win_ic_info->preedit.control.enable_bidi = 1;
@@ -122,6 +122,7 @@ win_create_ic (MInputContext *ic)
 
   win_ic_info->status.win = mwin__create_window (frame, win_info->client);
   win_ic_info->status.control.as_image = 1;
+  win_ic_info->status.control.enable_bidi = 1;
 
   win_ic_info->candidates.win = mwin__create_window (frame, win_info->client);
   win_ic_info->candidates.control.as_image = 1;
@@ -220,16 +221,24 @@ adjust_window_and_draw (MFrame *frame, MInputContext *ic, MText *mt, int type)
     physical.x = win_ic_info->client.geometry.width - physical.width;
   if (type == 0)
     {
-      if (y0 > - ic->spot.ascent)
+      if (len <= 1)
        {
-         physical.height += y0 + ic->spot.ascent;
-         y0 = - ic->spot.ascent;
+         physical.height = physical.width = 1;
+         physical.x = physical.y = -1;
        }
-      if (y1 < ic->spot.descent)
+      else
        {
-         physical.height += ic->spot.descent - y1;
+         if (y0 > - ic->spot.ascent)
+           {
+             physical.height += y0 + ic->spot.ascent;
+             y0 = - ic->spot.ascent;
+           }
+         if (y1 < ic->spot.descent)
+           {
+             physical.height += ic->spot.descent - y1;
+           }
+         physical.y = yoff + ic->spot.y + y0;
        }
-      physical.y = yoff + ic->spot.y + y0;
     }
   else if (type == 1)
     {
@@ -581,7 +590,7 @@ minput__win_fini ()
     The argument $ARG of the function minput_lookup () must be the
     same one as that of the function minput_filter (). */
 
-/***ja
+/***oldja
     @brief ¥¦¥£¥ó¥É¥¦¥·¥¹¥Æ¥à¤ÎÆâÉôÆþÎϥ᥽¥Ã¥ÉÍÑÆþÎϥɥ饤¥Ð
 
     ÆþÎϥɥ饤¥Ð @c minput_gui_driver ¤Ï¡¢¥¦¥£¥ó¥É¥¦¥·¥¹¥Æ¥à¾å¤ÇÍѤ¤¤é
@@ -648,7 +657,7 @@ MInputDriver minput_gui_driver;
 
     At last, a symbol who has the name is returned.  */
 
-/***ja
+/***oldja
     @brief ¥­¡¼Ì¾¾Î¤òÆþÎÏ¥­¡¼¤ËÊÑ´¹¤¹¤ë
 
     ´Ø¿ô minput_name_to_key () ¤Ï¡¢Ì¾Á° $NAME ¤ËÂбþ¤¹¤ëÆþÎÏ¥­¡¼¤òÊÖ¤¹¡£