Module: wine Branch: master Commit: 7fc68b7ac5a0aa0db1006c308b7a2a1be53f7d46 URL: https://gitlab.winehq.org/wine/wine/-/commit/7fc68b7ac5a0aa0db1006c308b7a2a1...
Author: Jacek Caban jacek@codeweavers.com Date: Fri Dec 9 12:56:06 2022 +0100
win32u: Move GetTaskmanWindow implementation from user32.
---
dlls/user32/focus.c | 11 +---------- dlls/win32u/input.c | 14 ++++++++++++++ dlls/win32u/sysparams.c | 3 +++ dlls/win32u/win32u_private.h | 1 + include/ntuser.h | 6 ++++++ 5 files changed, 25 insertions(+), 10 deletions(-)
diff --git a/dlls/user32/focus.c b/dlls/user32/focus.c index 4fde8a9df96..3d996b61510 100644 --- a/dlls/user32/focus.c +++ b/dlls/user32/focus.c @@ -107,14 +107,5 @@ HWND WINAPI SetTaskmanWindow( HWND hwnd ) */ HWND WINAPI GetTaskmanWindow(void) { - HWND ret = 0; - - SERVER_START_REQ(set_global_windows) - { - req->flags = 0; - if (!wine_server_call_err(req)) - ret = wine_server_ptr_handle( reply->old_taskman_window ); - } - SERVER_END_REQ; - return ret; + return NtUserGetTaskmanWindow(); } diff --git a/dlls/win32u/input.c b/dlls/win32u/input.c index e12a76f434e..eaad697a63e 100644 --- a/dlls/win32u/input.c +++ b/dlls/win32u/input.c @@ -2234,6 +2234,20 @@ HWND set_progman_window( HWND hwnd ) return hwnd; }
+HWND get_taskman_window(void) +{ + HWND ret = 0; + + SERVER_START_REQ(set_global_windows) + { + req->flags = 0; + if (!wine_server_call_err(req)) + ret = wine_server_ptr_handle( reply->old_taskman_window ); + } + SERVER_END_REQ; + return ret; +} + HWND set_taskman_window( HWND hwnd ) { /* hwnd = MSTaskSwWClass diff --git a/dlls/win32u/sysparams.c b/dlls/win32u/sysparams.c index 1bd90d85332..13aaaa308c9 100644 --- a/dlls/win32u/sysparams.c +++ b/dlls/win32u/sysparams.c @@ -5443,6 +5443,9 @@ ULONG_PTR WINAPI NtUserCallNoParam( ULONG code ) case NtUserCallNoParam_GetShellWindow: return HandleToUlong( get_shell_window() );
+ case NtUserCallNoParam_GetTaskmanWindow: + return HandleToUlong( get_taskman_window() ); + case NtUserCallNoParam_ReleaseCapture: return release_capture();
diff --git a/dlls/win32u/win32u_private.h b/dlls/win32u/win32u_private.h index 3b76d2f0d5b..8e294b7924a 100644 --- a/dlls/win32u/win32u_private.h +++ b/dlls/win32u/win32u_private.h @@ -273,6 +273,7 @@ extern HWND get_focus(void) DECLSPEC_HIDDEN; extern DWORD get_input_state(void) DECLSPEC_HIDDEN; extern HWND get_progman_window(void) DECLSPEC_HIDDEN; extern HWND get_shell_window(void) DECLSPEC_HIDDEN; +extern HWND get_taskman_window(void) DECLSPEC_HIDDEN; extern BOOL WINAPI release_capture(void) DECLSPEC_HIDDEN; extern BOOL set_capture_window( HWND hwnd, UINT gui_flags, HWND *prev_ret ) DECLSPEC_HIDDEN; extern BOOL set_caret_blink_time( unsigned int time ) DECLSPEC_HIDDEN; diff --git a/include/ntuser.h b/include/ntuser.h index 5e94be6b9dc..7bbe7037f20 100644 --- a/include/ntuser.h +++ b/include/ntuser.h @@ -913,6 +913,7 @@ enum NtUserCallNoParam_GetProcessDefaultLayout, NtUserCallNoParam_GetProgmanWindow, NtUserCallNoParam_GetShellWindow, + NtUserCallNoParam_GetTaskmanWindow, NtUserCallNoParam_ReleaseCapture, /* temporary exports */ NtUserExitingThread, @@ -954,6 +955,11 @@ static inline HWND NtUserGetShellWindow(void) return UlongToHandle( NtUserCallNoParam( NtUserCallNoParam_GetShellWindow )); }
+static inline HWND NtUserGetTaskmanWindow(void) +{ + return UlongToHandle( NtUserCallNoParam( NtUserCallNoParam_GetTaskmanWindow )); +} + static inline BOOL NtUserReleaseCapture(void) { return NtUserCallNoParam( NtUserCallNoParam_ReleaseCapture );