Jacek Caban : win32u: Move __wine_set_pixel_format implementation from user32.
Alexandre Julliard
julliard at winehq.org
Wed Mar 16 16:48:23 CDT 2022
Module: wine
Branch: master
Commit: ea764fbd3e21b53efd969ca1bc1745d2e3166d49
URL: https://source.winehq.org/git/wine.git/?a=commit;h=ea764fbd3e21b53efd969ca1bc1745d2e3166d49
Author: Jacek Caban <jacek at codeweavers.com>
Date: Wed Mar 16 15:35:35 2022 +0100
win32u: Move __wine_set_pixel_format implementation from user32.
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Huw Davies <huw at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/user32/win.c | 39 +--------------------------------------
dlls/win32u/window.c | 18 ++++++++++++++++++
include/ntuser.h | 1 +
3 files changed, 20 insertions(+), 38 deletions(-)
diff --git a/dlls/user32/win.c b/dlls/user32/win.c
index 2c241aad7d2..a21bdc62ed5 100644
--- a/dlls/user32/win.c
+++ b/dlls/user32/win.c
@@ -258,32 +258,6 @@ static void send_parent_notify( HWND hwnd, UINT msg )
}
-/*******************************************************************
- * update_window_state
- *
- * Trigger an update of the window's driver state and surface.
- */
-static void update_window_state( HWND hwnd )
-{
- DPI_AWARENESS_CONTEXT context;
- RECT window_rect, client_rect, valid_rects[2];
-
- if (!WIN_IsCurrentThread( hwnd ))
- {
- PostMessageW( hwnd, WM_WINE_UPDATEWINDOWSTATE, 0, 0 );
- return;
- }
-
- context = SetThreadDpiAwarenessContext( GetWindowDpiAwarenessContext( hwnd ));
- WIN_GetRectangles( hwnd, COORDS_PARENT, &window_rect, &client_rect );
- valid_rects[0] = valid_rects[1] = client_rect;
- set_window_pos( hwnd, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_NOCLIENTSIZE | SWP_NOCLIENTMOVE |
- SWP_NOZORDER | SWP_NOACTIVATE | SWP_NOREDRAW,
- &window_rect, &client_rect, valid_rects );
- SetThreadDpiAwarenessContext( context );
-}
-
-
/*******************************************************************
* get_hwnd_message_parent
*
@@ -2726,18 +2700,7 @@ BOOL WINAPI SwitchDesktop( HDESK hDesktop)
*/
BOOL CDECL __wine_set_pixel_format( HWND hwnd, int format )
{
- WND *win = WIN_GetPtr( hwnd );
-
- if (!win || win == WND_DESKTOP || win == WND_OTHER_PROCESS)
- {
- WARN( "setting format %d on win %p not supported\n", format, hwnd );
- return FALSE;
- }
- win->pixel_format = format;
- WIN_ReleasePtr( win );
-
- update_window_state( hwnd );
- return TRUE;
+ return NtUserCallHwndParam( hwnd, format, NtUserSetWindowPixelFormat );
}
diff --git a/dlls/win32u/window.c b/dlls/win32u/window.c
index e4311b49608..2700df862ca 100644
--- a/dlls/win32u/window.c
+++ b/dlls/win32u/window.c
@@ -1421,6 +1421,22 @@ LONG_PTR WINAPI NtUserSetWindowLongPtr( HWND hwnd, INT offset, LONG_PTR newval,
return set_window_long( hwnd, offset, sizeof(LONG_PTR), newval, ansi );
}
+static BOOL set_window_pixel_format( HWND hwnd, int format )
+{
+ WND *win = get_win_ptr( hwnd );
+
+ if (!win || win == WND_DESKTOP || win == WND_OTHER_PROCESS)
+ {
+ WARN( "setting format %d on win %p not supported\n", format, hwnd );
+ return FALSE;
+ }
+ win->pixel_format = format;
+ release_win_ptr( win );
+
+ update_window_state( hwnd );
+ return TRUE;
+}
+
/***********************************************************************
* NtUserGetProp (win32u.@)
*
@@ -3322,6 +3338,8 @@ ULONG_PTR WINAPI NtUserCallHwndParam( HWND hwnd, DWORD_PTR param, DWORD code )
return set_capture_window( hwnd, param, NULL );
case NtUserSetForegroundWindow:
return set_foreground_window( hwnd, param );
+ case NtUserSetWindowPixelFormat:
+ return set_window_pixel_format( hwnd, param );
/* temporary exports */
case NtUserIsWindowDrawable:
return is_window_drawable( hwnd, param );
diff --git a/include/ntuser.h b/include/ntuser.h
index 0e48aea0f9c..4ca4c063ef8 100644
--- a/include/ntuser.h
+++ b/include/ntuser.h
@@ -181,6 +181,7 @@ enum
NtUserMonitorFromWindow,
NtUserSetCaptureWindow,
NtUserSetForegroundWindow,
+ NtUserSetWindowPixelFormat,
/* temporary exports */
NtUserIsWindowDrawable,
NtUserSetWindowStyle,
More information about the wine-cvs
mailing list