diff options
| author | Fujii Hironori <fujii.hironori@gmail.com> | 2015-02-19 13:40:48 +0200 |
|---|---|---|
| committer | Eli Zaretskii <eliz@gnu.org> | 2015-02-19 13:40:48 +0200 |
| commit | 37e3549055fc153657f0a04b28cf29b7e15a97d8 (patch) | |
| tree | bdea4709fc794d5812c21b27650e65d8664e2de0 | |
| parent | 99db66a01fd998942c4e75733863903247345d90 (diff) | |
| download | emacs-37e3549055fc153657f0a04b28cf29b7e15a97d8.tar.gz | |
Fix display of IME window on MS-Windows (Bug#11732)
src/w32fns.c (w32_wnd_proc) <WM_IME_STARTCOMPOSITION>: Pass the
message to DefWindowProc, after positioning the IME window, to
trigger its display.
Copyright-paperwork-exempt: yes
| -rw-r--r-- | src/ChangeLog | 6 | ||||
| -rw-r--r-- | 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 <fujii.hironori@gmail.com> (tiny change) + + * w32fns.c (w32_wnd_proc) <WM_IME_STARTCOMPOSITION>: Pass the + message to DefWindowProc, after positioning the IME window, to + trigger its display. (Bug#11732) + 2015-02-18 Eli Zaretskii <eliz@gnu.org> * 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; |
