(w32_wnd_proc): Only ignore IME messages for the
authorJason Rumney <jasonr@gnu.org>
Wed, 4 Mar 2009 13:41:03 +0000 (13:41 +0000)
committerJason Rumney <jasonr@gnu.org>
Wed, 4 Mar 2009 13:41:03 +0000 (13:41 +0000)
characters that have already been read.

src/ChangeLog
src/w32fns.c

index 2adea67..f5e847f 100644 (file)
@@ -1,5 +1,8 @@
 2009-03-04  Jason Rumney  <jasonr@gnu.org>
 
+       * w32fns.c (w32_wnd_proc): Only ignore IME messages for the
+       characters that have already been read.
+
        * image.c (xbm_read_bitmap_data, png_load, svg_load_image):
        Log an error message if check_image_size failed.
        (xpm_load_image, pbm_load, jpeg_load, tiff_load, gif_load)
index 16649cc..97b9ade 100644 (file)
@@ -3159,10 +3159,13 @@ w32_wnd_proc (hwnd, msg, wParam, lParam)
               my_post_msg (&wmsg, hwnd, WM_UNICHAR, (WPARAM) buffer[i],
                            lParam);
             }
-          /* We output the whole string above, so ignore following ones
-             until we are notified of the end of composition.  */
-          ignore_ime_char = 1;
+          /* Ignore the messages for the rest of the
+            characters in the string that was output above.  */
+          ignore_ime_char = (size / sizeof (wchar_t)) - 1;
         }
+      else
+       ignore_ime_char--;
+
       break;
 
     case WM_IME_ENDCOMPOSITION: