[PATCH 7/8] win32u: Move WM_NCRBUTTONDOWN implementation from user32.
Jacek Caban
wine at gitlab.winehq.org
Wed Jun 15 06:44:38 CDT 2022
From: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
---
dlls/user32/controls.h | 1 -
dlls/user32/defwnd.c | 3 ---
dlls/user32/nonclient.c | 34 ----------------------------------
dlls/win32u/defwnd.c | 31 +++++++++++++++++++++++++++++++
4 files changed, 31 insertions(+), 38 deletions(-)
diff --git a/dlls/user32/controls.h b/dlls/user32/controls.h
index eec6a4babe2..d4e8ccd7b08 100644
--- a/dlls/user32/controls.h
+++ b/dlls/user32/controls.h
@@ -123,7 +123,6 @@ extern HMENU MENU_GetSysMenu( HWND hWnd, HMENU hPopupMenu ) DECLSPEC_HIDDEN;
extern LRESULT NC_HandleNCHitTest( HWND hwnd, POINT pt ) DECLSPEC_HIDDEN;
extern LRESULT NC_HandleNCMouseMove( HWND hwnd, WPARAM wParam, LPARAM lParam ) DECLSPEC_HIDDEN;
extern LRESULT NC_HandleNCMouseLeave( HWND hwnd ) DECLSPEC_HIDDEN;
-extern LRESULT NC_HandleNCRButtonDown( HWND hwnd, WPARAM wParam, LPARAM lParam ) DECLSPEC_HIDDEN;
extern LRESULT NC_HandleNCLButtonDblClk( HWND hwnd, WPARAM wParam, LPARAM lParam) DECLSPEC_HIDDEN;
extern LRESULT NC_HandleSysCommand( HWND hwnd, WPARAM wParam, LPARAM lParam ) DECLSPEC_HIDDEN;
extern LRESULT NC_HandleSetCursor( HWND hwnd, WPARAM wParam, LPARAM lParam ) DECLSPEC_HIDDEN;
diff --git a/dlls/user32/defwnd.c b/dlls/user32/defwnd.c
index 0c783666b7e..a0d6ca44ecb 100644
--- a/dlls/user32/defwnd.c
+++ b/dlls/user32/defwnd.c
@@ -181,9 +181,6 @@ static LRESULT DEFWND_DefWinProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPa
case WM_NCLBUTTONDBLCLK:
return NC_HandleNCLButtonDblClk( hwnd, wParam, lParam );
- case WM_NCRBUTTONDOWN:
- return NC_HandleNCRButtonDown( hwnd, wParam, lParam );
-
case WM_RBUTTONUP:
{
POINT pt;
diff --git a/dlls/user32/nonclient.c b/dlls/user32/nonclient.c
index 128f633fa33..174f6e46977 100644
--- a/dlls/user32/nonclient.c
+++ b/dlls/user32/nonclient.c
@@ -717,40 +717,6 @@ static void NC_TrackScrollBar( HWND hwnd, WPARAM wParam, POINT pt )
}
-/***********************************************************************
- * NC_HandleNCRButtonDown
- *
- * Handle a WM_NCRBUTTONDOWN message. Called from DefWindowProc().
- */
-LRESULT NC_HandleNCRButtonDown( HWND hwnd, WPARAM wParam, LPARAM lParam )
-{
- MSG msg;
- INT hittest = wParam;
-
- switch (hittest)
- {
- case HTCAPTION:
- case HTSYSMENU:
- NtUserSetCapture( hwnd );
- for (;;)
- {
- if (!GetMessageW( &msg, 0, WM_MOUSEFIRST, WM_MOUSELAST )) break;
- if (NtUserCallMsgFilter( &msg, MSGF_MAX )) continue;
- if (msg.message == WM_RBUTTONUP)
- {
- hittest = NC_HandleNCHitTest( hwnd, msg.pt );
- break;
- }
- }
- ReleaseCapture();
- if (hittest == HTCAPTION || hittest == HTSYSMENU)
- SendMessageW( hwnd, WM_CONTEXTMENU, (WPARAM)hwnd, MAKELPARAM(msg.pt.x, msg.pt.y));
- break;
- }
- return 0;
-}
-
-
/***********************************************************************
* NC_HandleNCLButtonDblClk
*
diff --git a/dlls/win32u/defwnd.c b/dlls/win32u/defwnd.c
index 780570b5ad4..7126d492c78 100644
--- a/dlls/win32u/defwnd.c
+++ b/dlls/win32u/defwnd.c
@@ -1961,6 +1961,34 @@ static LRESULT handle_nc_lbutton_down( HWND hwnd, WPARAM wparam, LPARAM lparam )
return 0;
}
+static LRESULT handle_nc_rbutton_down( HWND hwnd, WPARAM wparam, LPARAM lparam )
+{
+ int hittest = wparam;
+ MSG msg;
+
+ switch (hittest)
+ {
+ case HTCAPTION:
+ case HTSYSMENU:
+ NtUserSetCapture( hwnd );
+ for (;;)
+ {
+ if (!NtUserGetMessage( &msg, 0, WM_MOUSEFIRST, WM_MOUSELAST )) break;
+ if (NtUserCallMsgFilter( &msg, MSGF_MAX )) continue;
+ if (msg.message == WM_RBUTTONUP)
+ {
+ hittest = handle_nc_hit_test( hwnd, msg.pt );
+ break;
+ }
+ }
+ release_capture();
+ if (hittest == HTCAPTION || hittest == HTSYSMENU)
+ send_message( hwnd, WM_CONTEXTMENU, (WPARAM)hwnd, MAKELPARAM( msg.pt.x, msg.pt.y ));
+ break;
+ }
+ return 0;
+}
+
LRESULT default_window_proc( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam, BOOL ansi )
{
LRESULT result = 0;
@@ -2009,6 +2037,9 @@ LRESULT default_window_proc( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam,
case WM_NCLBUTTONDOWN:
return handle_nc_lbutton_down( hwnd, wparam, lparam );
+ case WM_NCRBUTTONDOWN:
+ return handle_nc_rbutton_down( hwnd, wparam, lparam );
+
case WM_WINDOWPOSCHANGING:
return handle_window_pos_changing( hwnd, (WINDOWPOS *)lparam );
--
GitLab
https://gitlab.winehq.org/wine/wine/-/merge_requests/250
More information about the wine-devel
mailing list