Jacek Caban : win32u: Move default window proc to IME window forwarding implementation from user32.

Alexandre Julliard julliard at winehq.org
Fri Jul 15 14:44:42 CDT 2022


Module: wine
Branch: master
Commit: 70ad65d8d19fa354e3bdfdab362cb7a154f75f75
URL:    https://gitlab.winehq.org/wine/wine/-/commit/70ad65d8d19fa354e3bdfdab362cb7a154f75f75

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Fri Jul 15 13:00:51 2022 +0200

win32u: Move default window proc to IME window forwarding implementation from user32.

---

 dlls/user32/defwnd.c | 35 -----------------------------------
 dlls/win32u/defwnd.c | 15 +++++++++++++++
 2 files changed, 15 insertions(+), 35 deletions(-)

diff --git a/dlls/user32/defwnd.c b/dlls/user32/defwnd.c
index 70d62c4f718..9e258e5d3c0 100644
--- a/dlls/user32/defwnd.c
+++ b/dlls/user32/defwnd.c
@@ -147,23 +147,6 @@ LRESULT WINAPI DefWindowProcA( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam
             }
         }
         /* fall through */
-    case WM_IME_STARTCOMPOSITION:
-    case WM_IME_ENDCOMPOSITION:
-    case WM_IME_SELECT:
-    case WM_IME_NOTIFY:
-    case WM_IME_CONTROL:
-        {
-            HWND hwndIME = ImmGetDefaultIMEWnd( hwnd );
-            if (hwndIME)
-                result = SendMessageA( hwndIME, msg, wParam, lParam );
-        }
-        break;
-    case WM_IME_SETCONTEXT:
-        {
-            HWND hwndIME = ImmGetDefaultIMEWnd( hwnd );
-            if (hwndIME) result = ImmIsUIMessageA( hwndIME, msg, wParam, lParam );
-        }
-        break;
 
     default:
         result = NtUserMessageCall( hwnd, msg, wParam, lParam, 0, NtUserDefWindowProc, TRUE );
@@ -220,13 +203,6 @@ LRESULT WINAPI DefWindowProcW(
         result = PostMessageW( hwnd, WM_KEYUP, wParam, lParam );
         break;
 
-    case WM_IME_SETCONTEXT:
-        {
-            HWND hwndIME = ImmGetDefaultIMEWnd( hwnd );
-            if (hwndIME) result = ImmIsUIMessageW( hwndIME, msg, wParam, lParam );
-        }
-        break;
-
     case WM_IME_COMPOSITION:
         if (lParam & GCS_RESULTSTR)
         {
@@ -249,17 +225,6 @@ LRESULT WINAPI DefWindowProcW(
             }
         }
         /* fall through */
-    case WM_IME_STARTCOMPOSITION:
-    case WM_IME_ENDCOMPOSITION:
-    case WM_IME_SELECT:
-    case WM_IME_NOTIFY:
-    case WM_IME_CONTROL:
-        {
-            HWND hwndIME = ImmGetDefaultIMEWnd( hwnd );
-            if (hwndIME)
-                result = SendMessageW( hwndIME, msg, wParam, lParam );
-        }
-        break;
 
     default:
         result = NtUserMessageCall( hwnd, msg, wParam, lParam, 0, NtUserDefWindowProc, FALSE );
diff --git a/dlls/win32u/defwnd.c b/dlls/win32u/defwnd.c
index 3e42e3b1e22..d271b5b9670 100644
--- a/dlls/win32u/defwnd.c
+++ b/dlls/win32u/defwnd.c
@@ -2901,6 +2901,21 @@ LRESULT default_window_proc( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam,
             free( win_array );
             break;
         }
+
+    case WM_IME_SETCONTEXT:
+    case WM_IME_COMPOSITION:
+    case WM_IME_STARTCOMPOSITION:
+    case WM_IME_ENDCOMPOSITION:
+    case WM_IME_SELECT:
+    case WM_IME_NOTIFY:
+    case WM_IME_CONTROL:
+        {
+            HWND ime_hwnd = get_default_ime_window( hwnd );
+            if (ime_hwnd)
+                result = NtUserMessageCall( ime_hwnd, msg, wparam, lparam,
+                                            0, NtUserSendMessage, ansi );
+        }
+        break;
     }
 
     return result;




More information about the wine-cvs mailing list