[PATCH 3/7] win32u: Move WM_WINDOWPOSCHANGED implementation from user32.

Jacek Caban wine at gitlab.winehq.org
Mon Jun 20 08:21:41 CDT 2022


From: Jacek Caban <jacek at codeweavers.com>

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
---
 dlls/user32/defwnd.c | 33 ---------------------------------
 dlls/win32u/defwnd.c | 27 +++++++++++++++++++++++++++
 2 files changed, 27 insertions(+), 33 deletions(-)

diff --git a/dlls/user32/defwnd.c b/dlls/user32/defwnd.c
index 3eebc952ee1..c40d2ebedab 100644
--- a/dlls/user32/defwnd.c
+++ b/dlls/user32/defwnd.c
@@ -38,35 +38,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(win);
 
 #define DRAG_FILE  0x454C4946
 
-/***********************************************************************
- *           DEFWND_HandleWindowPosChanged
- *
- * Handle the WM_WINDOWPOSCHANGED message.
- */
-static void DEFWND_HandleWindowPosChanged( HWND hwnd, const WINDOWPOS *winpos )
-{
-    RECT rect;
-
-    WIN_GetRectangles( hwnd, COORDS_PARENT, NULL, &rect );
-    if (!(winpos->flags & SWP_NOCLIENTMOVE))
-        SendMessageW( hwnd, WM_MOVE, 0, MAKELONG(rect.left, rect.top));
-
-    if (!(winpos->flags & SWP_NOCLIENTSIZE) || (winpos->flags & SWP_STATECHANGED))
-    {
-        if (IsIconic( hwnd ))
-        {
-            SendMessageW( hwnd, WM_SIZE, SIZE_MINIMIZED, 0 );
-        }
-        else
-        {
-            WPARAM wp = IsZoomed( hwnd ) ? SIZE_MAXIMIZED : SIZE_RESTORED;
-
-            SendMessageW( hwnd, WM_SIZE, wp, MAKELONG(rect.right-rect.left, rect.bottom-rect.top) );
-        }
-    }
-}
-
-
 /***********************************************************************
  *           DEFWND_ControlColor
  *
@@ -158,10 +129,6 @@ static LRESULT DEFWND_DefWinProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPa
     case WM_NCMOUSELEAVE:
         return NC_HandleNCMouseLeave( hwnd );
 
-    case WM_WINDOWPOSCHANGED:
-        DEFWND_HandleWindowPosChanged( hwnd, (const WINDOWPOS *)lParam );
-        break;
-
     case WM_RBUTTONUP:
         {
             POINT pt;
diff --git a/dlls/win32u/defwnd.c b/dlls/win32u/defwnd.c
index b3726bf8e88..e367a769401 100644
--- a/dlls/win32u/defwnd.c
+++ b/dlls/win32u/defwnd.c
@@ -489,6 +489,29 @@ static LONG handle_window_pos_changing( HWND hwnd, WINDOWPOS *winpos )
     return 0;
 }
 
+static void handle_window_pos_changed( HWND hwnd, const WINDOWPOS *winpos )
+{
+    RECT rect;
+
+    get_window_rects( hwnd, COORDS_PARENT, NULL, &rect, get_thread_dpi() );
+    if (!(winpos->flags & SWP_NOCLIENTMOVE))
+        send_message( hwnd, WM_MOVE, 0, MAKELONG( rect.left, rect.top ));
+
+    if (!(winpos->flags & SWP_NOCLIENTSIZE) || (winpos->flags & SWP_STATECHANGED))
+    {
+        if (is_iconic( hwnd ))
+        {
+            send_message( hwnd, WM_SIZE, SIZE_MINIMIZED, 0 );
+        }
+        else
+        {
+            WPARAM wp = is_zoomed( hwnd ) ? SIZE_MAXIMIZED : SIZE_RESTORED;
+            send_message( hwnd, WM_SIZE, wp,
+                          MAKELONG( rect.right-rect.left, rect.bottom-rect.top ));
+        }
+    }
+}
+
 /***********************************************************************
  *           draw_moving_frame
  *
@@ -2324,6 +2347,10 @@ LRESULT default_window_proc( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam,
     case WM_WINDOWPOSCHANGING:
         return handle_window_pos_changing( hwnd, (WINDOWPOS *)lparam );
 
+    case WM_WINDOWPOSCHANGED:
+        handle_window_pos_changed( hwnd, (const WINDOWPOS *)lparam );
+        break;
+
     case WM_PAINTICON:
     case WM_PAINT:
         {
-- 
GitLab


https://gitlab.winehq.org/wine/wine/-/merge_requests/285



More information about the wine-devel mailing list