]> git.eshelyaron.com Git - emacs.git/commitdiff
Partially revert the fix for bug #11732
authorEli Zaretskii <eliz@gnu.org>
Sat, 7 Mar 2015 10:49:54 +0000 (12:49 +0200)
committerEli Zaretskii <eliz@gnu.org>
Sat, 7 Mar 2015 10:49:54 +0000 (12:49 +0200)
 src/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.

src/ChangeLog
src/w32fns.c

index 6b658f51671caae6e2b10df4f08a8d5d76569ebb..fc776188f056f49c56bd2bccbe126fe7b353fe9e 100644 (file)
@@ -1,3 +1,12 @@
+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
index 64532ae6629f8457274ea91b918ce7f1c464d6d1..6abb433fd2f0c33943482d4a1505ff7aeadda269 100644 (file)
@@ -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;