From e851da3540d29122fd3b53ae26d766237c85b989 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sat, 7 Mar 2015 12:49:54 +0200 Subject: [PATCH] Partially revert the fix for bug #11732 src/w32fns.c : Fix typedefs to be consistent with the corresponding w32 API signatures. (w32_wnd_proc) : Don't invoke DefWindowProc if we successfully handled the message, as doing so causes problems in displaying selection dialogs. --- src/ChangeLog | 9 +++++++++ src/w32fns.c | 14 +++++++++----- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 6b658f51671..fc776188f05 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,12 @@ +2015-03-07 Eli Zaretskii + + * w32fns.c : + Fix typedefs to be consistent with the corresponding w32 API + signatures. + (w32_wnd_proc) : Don't invoke + DefWindowProc if we successfully handled the message, as doing so + causes problems in displaying selection dialogs. (Bug#11732) + 2015-03-05 Paul Eggert Work around x86 glibc backtrace bug diff --git a/src/w32fns.c b/src/w32fns.c index 64532ae6629..6abb433fd2f 100644 --- a/src/w32fns.c +++ b/src/w32fns.c @@ -157,8 +157,8 @@ typedef BOOL (WINAPI * TrackMouseEvent_Proc) typedef LONG (WINAPI * ImmGetCompositionString_Proc) (IN HIMC context, IN DWORD index, OUT LPVOID buffer, IN DWORD bufLen); typedef HIMC (WINAPI * ImmGetContext_Proc) (IN HWND window); -typedef HWND (WINAPI * ImmReleaseContext_Proc) (IN HWND wnd, IN HIMC context); -typedef HWND (WINAPI * ImmSetCompositionWindow_Proc) (IN HIMC context, +typedef BOOL (WINAPI * ImmReleaseContext_Proc) (IN HWND wnd, IN HIMC context); +typedef BOOL (WINAPI * ImmSetCompositionWindow_Proc) (IN HIMC context, IN COMPOSITIONFORM *form); typedef HMONITOR (WINAPI * MonitorFromPoint_Proc) (IN POINT pt, IN DWORD flags); typedef BOOL (WINAPI * GetMonitorInfo_Proc) @@ -3324,9 +3324,13 @@ w32_wnd_proc (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) set_ime_composition_window_fn (context, &form); release_ime_context_fn (hwnd, context); } - /* Pass WM_IME_STARTCOMPOSITION to DefWindowProc, so that the - composition window will actually be displayed. */ - goto dflt; + /* We should "goto dflt" here to pass WM_IME_STARTCOMPOSITION to + DefWindowProc, so that the composition window will actually + be displayed. But doing so causes trouble with displaying + dialog boxes, such as the file selection dialog or font + selection dialog. So something else is needed to fix the + former without breaking the latter. See bug#11732. */ + break; case WM_IME_ENDCOMPOSITION: ignore_ime_char = 0; -- 2.39.2