From 7d53e27cffbd15e618248515689de34268dc05b9 Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Fri, 9 Dec 2022 12:54:07 +0100 Subject: [PATCH] win32u: Move SetTaskmanWindow implementation from user32. --- dlls/user32/focus.c | 11 ++--------- dlls/win32u/input.c | 15 +++++++++++++++ dlls/win32u/win32u_private.h | 1 + dlls/win32u/window.c | 3 +++ include/ntuser.h | 6 ++++++ 5 files changed, 27 insertions(+), 9 deletions(-) diff --git a/dlls/user32/focus.c b/dlls/user32/focus.c index 18084f7dbfd..4fde8a9df96 100644 --- a/dlls/user32/focus.c +++ b/dlls/user32/focus.c @@ -97,16 +97,9 @@ HWND WINAPI GetProgmanWindow(void) * hwnd = MSTaskSwWClass * |-> SysTabControl32 */ -HWND WINAPI SetTaskmanWindow ( HWND hwnd ) +HWND WINAPI SetTaskmanWindow( HWND hwnd ) { - SERVER_START_REQ(set_global_windows) - { - req->flags = SET_GLOBAL_TASKMAN_WINDOW; - req->taskman_window = wine_server_user_handle( hwnd ); - if (wine_server_call_err( req )) hwnd = 0; - } - SERVER_END_REQ; - return hwnd; + return NtUserSetTaskmanWindow( hwnd ); } /*********************************************************************** diff --git a/dlls/win32u/input.c b/dlls/win32u/input.c index 6d727a934c8..e12a76f434e 100644 --- a/dlls/win32u/input.c +++ b/dlls/win32u/input.c @@ -2233,3 +2233,18 @@ HWND set_progman_window( HWND hwnd ) SERVER_END_REQ; return hwnd; } + +HWND set_taskman_window( HWND hwnd ) +{ + /* hwnd = MSTaskSwWClass + * |-> SysTabControl32 + */ + SERVER_START_REQ(set_global_windows) + { + req->flags = SET_GLOBAL_TASKMAN_WINDOW; + req->taskman_window = wine_server_user_handle( hwnd ); + if (wine_server_call_err( req )) hwnd = 0; + } + SERVER_END_REQ; + return hwnd; +} diff --git a/dlls/win32u/win32u_private.h b/dlls/win32u/win32u_private.h index 67efa7ddefc..3b76d2f0d5b 100644 --- a/dlls/win32u/win32u_private.h +++ b/dlls/win32u/win32u_private.h @@ -279,6 +279,7 @@ extern BOOL set_caret_blink_time( unsigned int time ) DECLSPEC_HIDDEN; extern BOOL set_caret_pos( int x, int y ) DECLSPEC_HIDDEN; extern BOOL set_foreground_window( HWND hwnd, BOOL mouse ) DECLSPEC_HIDDEN; extern HWND set_progman_window( HWND hwnd ) DECLSPEC_HIDDEN; +extern HWND set_taskman_window( HWND hwnd ) DECLSPEC_HIDDEN; extern void toggle_caret( HWND hwnd ) DECLSPEC_HIDDEN; extern void update_mouse_tracking_info( HWND hwnd ) DECLSPEC_HIDDEN; diff --git a/dlls/win32u/window.c b/dlls/win32u/window.c index 91baca39eaa..19348338c46 100644 --- a/dlls/win32u/window.c +++ b/dlls/win32u/window.c @@ -5432,6 +5432,9 @@ ULONG_PTR WINAPI NtUserCallHwnd( HWND hwnd, DWORD code ) case NtUserCallHwnd_SetProgmanWindow: return HandleToUlong( set_progman_window( hwnd )); + case NtUserCallHwnd_SetTaskmanWindow: + return HandleToUlong( set_taskman_window( hwnd )); + /* temporary exports */ case NtUserGetFullWindowHandle: return HandleToUlong( get_full_window_handle( hwnd )); diff --git a/include/ntuser.h b/include/ntuser.h index 3fc0bc71cd4..5e94be6b9dc 100644 --- a/include/ntuser.h +++ b/include/ntuser.h @@ -1182,6 +1182,7 @@ enum NtUserCallHwnd_IsWindowVisible, NtUserCallHwnd_SetForegroundWindow, NtUserCallHwnd_SetProgmanWindow, + NtUserCallHwnd_SetTaskmanWindow, /* temporary exports */ NtUserGetFullWindowHandle, NtUserIsCurrehtProcessWindow, @@ -1284,6 +1285,11 @@ static inline HWND NtUserSetProgmanWindow( HWND hwnd ) return UlongToHandle( NtUserCallHwnd( hwnd, NtUserCallHwnd_SetProgmanWindow )); } +static inline HWND NtUserSetTaskmanWindow( HWND hwnd ) +{ + return UlongToHandle( NtUserCallHwnd( hwnd, NtUserCallHwnd_SetTaskmanWindow )); +} + /* NtUserCallHwndParam codes, not compatible with Windows */ enum { -- 2.11.4.GIT