From 37e3549055fc153657f0a04b28cf29b7e15a97d8 Mon Sep 17 00:00:00 2001 From: Fujii Hironori Date: Thu, 19 Feb 2015 13:40:48 +0200 Subject: [PATCH] Fix display of IME window on MS-Windows (Bug#11732) src/w32fns.c (w32_wnd_proc) : Pass the message to DefWindowProc, after positioning the IME window, to trigger its display. Copyright-paperwork-exempt: yes --- src/ChangeLog | 6 ++++++ src/w32fns.c | 12 +++++++----- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 1c4758f969b..87133535e97 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2015-02-19 Fujii Hironori (tiny change) + + * w32fns.c (w32_wnd_proc) : Pass the + message to DefWindowProc, after positioning the IME window, to + trigger its display. (Bug#11732) + 2015-02-18 Eli Zaretskii * emacs.c (Fkill_emacs): Exit with specified exit code even if diff --git a/src/w32fns.c b/src/w32fns.c index 08000d87d38..1e685ad6d98 100644 --- a/src/w32fns.c +++ b/src/w32fns.c @@ -3295,12 +3295,12 @@ w32_wnd_proc (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) field being reset to nil. */ f = x_window_to_frame (dpyinfo, hwnd); if (!(f && FRAME_LIVE_P (f))) - break; + goto dflt; w = XWINDOW (FRAME_SELECTED_WINDOW (f)); /* Punt if someone changed the frame's selected window behind our back. */ if (w != w32_system_caret_window) - break; + goto dflt; form.dwStyle = CFS_RECT; form.ptCurrentPos.x = w32_system_caret_x; @@ -3318,17 +3318,19 @@ 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; + /* Pass WM_IME_STARTCOMPOSITION to DefWindowProc, so that the + composition window will actually be displayed. */ + goto dflt; case WM_IME_ENDCOMPOSITION: ignore_ime_char = 0; -- 2.39.2