+2015-03-07 Eli Zaretskii <eliz@gnu.org>
+
+ * w32fns.c <ImmReleaseContext_Proc, ImmSetCompositionWindow_Proc>:
+ Fix typedefs to be consistent with the corresponding w32 API
+ signatures.
+ (w32_wnd_proc) <WM_IME_STARTCOMPOSITION>: 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 <eggert@cs.ucla.edu>
Work around x86 glibc backtrace bug
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)
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;