Subject: Re: bug#11732: 24.1; Microsoft IME Japanese input problem

From: Eli Zaretskii <[email-masked]>
Date: Wed, 18 Feb 2015 17:17:04 +0200

> Date: Tue, 17 Feb 2015 19:26:41 +0900
> From: Fujii Hironori <[email-masked]>
> 
> WM_IME_STARTCOMPOSITION should be passed to DefWindowProc.

Thanks, but can you explain the details?

I can understand why we should defer to DefWindowProc if we refrain
from processing this message, for some reason.  But this last part of
your patch:

> @@ -3318,17 +3318,17 @@ w32_wnd_proc (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
>  
>  	  /* Punt if the window was deleted behind our back.  */
>  	  if (!BUFFERP (w->contents))
> -	    break;
> +	    goto dflt;
>  
>  	  context = get_ime_context_fn (hwnd);
>  
>  	  if (!context)
> -	    break;
> +	    goto dflt;
>  
>  	  set_ime_composition_window_fn (context, &form);
>  	  release_ime_context_fn (hwnd, context);
>  	}
> -      break;
> +      goto dflt;
>  
>      case WM_IME_ENDCOMPOSITION:
>        ignore_ime_char = 0;

Passes the message to DefWindowProc even if we succeeded to handle
WM_IME_STARTCOMPOSITION by calling ImmSetCompositionWindow.  Why is
that needed?