[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