win32u: Move NtUserExcludeUpdateRgn implementation from user32.
Signed-off-by: Jacek Caban <jacek@codeweavers.com> Signed-off-by: Huw Davies <huw@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
7b6a38b072
commit
52ff3a3094
|
@ -240,31 +240,6 @@ BOOL WINAPI ValidateRect( HWND hwnd, const RECT *rect )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/***********************************************************************
|
|
||||||
* ExcludeUpdateRgn (USER32.@)
|
|
||||||
*/
|
|
||||||
INT WINAPI ExcludeUpdateRgn( HDC hdc, HWND hwnd )
|
|
||||||
{
|
|
||||||
HRGN update_rgn = CreateRectRgn( 0, 0, 0, 0 );
|
|
||||||
INT ret = NtUserGetUpdateRgn( hwnd, update_rgn, FALSE );
|
|
||||||
|
|
||||||
if (ret != ERROR)
|
|
||||||
{
|
|
||||||
DPI_AWARENESS_CONTEXT context;
|
|
||||||
POINT pt;
|
|
||||||
|
|
||||||
context = SetThreadDpiAwarenessContext( GetWindowDpiAwarenessContext( hwnd ));
|
|
||||||
GetDCOrgEx( hdc, &pt );
|
|
||||||
MapWindowPoints( 0, hwnd, &pt, 1 );
|
|
||||||
OffsetRgn( update_rgn, -pt.x, -pt.y );
|
|
||||||
ret = ExtSelectClipRgn( hdc, update_rgn, RGN_DIFF );
|
|
||||||
SetThreadDpiAwarenessContext( context );
|
|
||||||
}
|
|
||||||
DeleteObject( update_rgn );
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static INT scroll_window( HWND hwnd, INT dx, INT dy, const RECT *rect, const RECT *clipRect,
|
static INT scroll_window( HWND hwnd, INT dx, INT dy, const RECT *rect, const RECT *clipRect,
|
||||||
HRGN hrgnUpdate, LPRECT rcUpdate, UINT flags, BOOL is_ex )
|
HRGN hrgnUpdate, LPRECT rcUpdate, UINT flags, BOOL is_ex )
|
||||||
{
|
{
|
||||||
|
|
|
@ -237,7 +237,7 @@
|
||||||
@ stdcall EnumWindowStationsW(ptr long)
|
@ stdcall EnumWindowStationsW(ptr long)
|
||||||
@ stdcall EnumWindows(ptr long)
|
@ stdcall EnumWindows(ptr long)
|
||||||
@ stdcall EqualRect(ptr ptr)
|
@ stdcall EqualRect(ptr ptr)
|
||||||
@ stdcall ExcludeUpdateRgn(long long)
|
@ stdcall ExcludeUpdateRgn(long long) NtUserExcludeUpdateRgn
|
||||||
@ stdcall ExitWindowsEx(long long)
|
@ stdcall ExitWindowsEx(long long)
|
||||||
@ stdcall FillRect(long ptr long)
|
@ stdcall FillRect(long ptr long)
|
||||||
@ stdcall FindWindowA(str str)
|
@ stdcall FindWindowA(str str)
|
||||||
|
|
|
@ -1546,3 +1546,27 @@ BOOL WINAPI NtUserGetUpdateRect( HWND hwnd, RECT *rect, BOOL erase )
|
||||||
if (need_erase) flags |= UPDATE_DELAYED_ERASE;
|
if (need_erase) flags |= UPDATE_DELAYED_ERASE;
|
||||||
return get_update_flags( hwnd, NULL, &flags ) && (flags & UPDATE_PAINT);
|
return get_update_flags( hwnd, NULL, &flags ) && (flags & UPDATE_PAINT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/***********************************************************************
|
||||||
|
* NtUserExcludeUpdateRgn (win32u.@)
|
||||||
|
*/
|
||||||
|
INT WINAPI NtUserExcludeUpdateRgn( HDC hdc, HWND hwnd )
|
||||||
|
{
|
||||||
|
HRGN update_rgn = NtGdiCreateRectRgn( 0, 0, 0, 0 );
|
||||||
|
INT ret = NtUserGetUpdateRgn( hwnd, update_rgn, FALSE );
|
||||||
|
|
||||||
|
if (ret != ERROR)
|
||||||
|
{
|
||||||
|
DPI_AWARENESS_CONTEXT context;
|
||||||
|
POINT pt;
|
||||||
|
|
||||||
|
context = set_thread_dpi_awareness_context( get_window_dpi_awareness_context( hwnd ));
|
||||||
|
NtGdiGetDCPoint( hdc, NtGdiGetDCOrg, &pt );
|
||||||
|
map_window_points( 0, hwnd, &pt, 1, get_thread_dpi() );
|
||||||
|
NtGdiOffsetRgn( update_rgn, -pt.x, -pt.y );
|
||||||
|
ret = NtGdiExtSelectClipRgn( hdc, update_rgn, RGN_DIFF );
|
||||||
|
set_thread_dpi_awareness_context( context );
|
||||||
|
}
|
||||||
|
NtGdiDeleteObjectApp( update_rgn );
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
|
@ -1155,6 +1155,7 @@ static struct unix_funcs unix_funcs =
|
||||||
NtUserEnumDisplayDevices,
|
NtUserEnumDisplayDevices,
|
||||||
NtUserEnumDisplayMonitors,
|
NtUserEnumDisplayMonitors,
|
||||||
NtUserEnumDisplaySettings,
|
NtUserEnumDisplaySettings,
|
||||||
|
NtUserExcludeUpdateRgn,
|
||||||
NtUserFlashWindowEx,
|
NtUserFlashWindowEx,
|
||||||
NtUserGetAsyncKeyState,
|
NtUserGetAsyncKeyState,
|
||||||
NtUserGetClassInfoEx,
|
NtUserGetClassInfoEx,
|
||||||
|
|
|
@ -879,7 +879,7 @@
|
||||||
@ stdcall NtUserEnumDisplayMonitors(long ptr ptr long)
|
@ stdcall NtUserEnumDisplayMonitors(long ptr ptr long)
|
||||||
@ stdcall NtUserEnumDisplaySettings(ptr long ptr long)
|
@ stdcall NtUserEnumDisplaySettings(ptr long ptr long)
|
||||||
@ stub NtUserEvent
|
@ stub NtUserEvent
|
||||||
@ stub NtUserExcludeUpdateRgn
|
@ stdcall NtUserExcludeUpdateRgn(long long)
|
||||||
@ stub NtUserFillWindow
|
@ stub NtUserFillWindow
|
||||||
@ stdcall -syscall NtUserFindExistingCursorIcon(ptr ptr ptr)
|
@ stdcall -syscall NtUserFindExistingCursorIcon(ptr ptr ptr)
|
||||||
@ stub NtUserFindWindowEx
|
@ stub NtUserFindWindowEx
|
||||||
|
|
|
@ -217,6 +217,7 @@ struct unix_funcs
|
||||||
BOOL (WINAPI *pNtUserEnumDisplayMonitors)( HDC hdc, RECT *rect, MONITORENUMPROC proc, LPARAM lp );
|
BOOL (WINAPI *pNtUserEnumDisplayMonitors)( HDC hdc, RECT *rect, MONITORENUMPROC proc, LPARAM lp );
|
||||||
BOOL (WINAPI *pNtUserEnumDisplaySettings)( UNICODE_STRING *device, DWORD mode,
|
BOOL (WINAPI *pNtUserEnumDisplaySettings)( UNICODE_STRING *device, DWORD mode,
|
||||||
DEVMODEW *dev_mode, DWORD flags );
|
DEVMODEW *dev_mode, DWORD flags );
|
||||||
|
INT (WINAPI *pNtUserExcludeUpdateRgn)( HDC hdc, HWND hwnd );
|
||||||
BOOL (WINAPI *pNtUserFlashWindowEx)( FLASHWINFO *info );
|
BOOL (WINAPI *pNtUserFlashWindowEx)( FLASHWINFO *info );
|
||||||
SHORT (WINAPI *pNtUserGetAsyncKeyState)( INT key );
|
SHORT (WINAPI *pNtUserGetAsyncKeyState)( INT key );
|
||||||
ATOM (WINAPI *pNtUserGetClassInfoEx)( HINSTANCE instance, UNICODE_STRING *name, WNDCLASSEXW *wc,
|
ATOM (WINAPI *pNtUserGetClassInfoEx)( HINSTANCE instance, UNICODE_STRING *name, WNDCLASSEXW *wc,
|
||||||
|
|
|
@ -852,6 +852,12 @@ BOOL WINAPI NtUserEnumDisplaySettings( UNICODE_STRING *device, DWORD mode,
|
||||||
return unix_funcs->pNtUserEnumDisplaySettings( device, mode, dev_mode, flags );
|
return unix_funcs->pNtUserEnumDisplaySettings( device, mode, dev_mode, flags );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
INT WINAPI NtUserExcludeUpdateRgn( HDC hdc, HWND hwnd )
|
||||||
|
{
|
||||||
|
if (!unix_funcs) return ERROR;
|
||||||
|
return unix_funcs->pNtUserExcludeUpdateRgn( hdc, hwnd );
|
||||||
|
}
|
||||||
|
|
||||||
BOOL WINAPI NtUserFlashWindowEx( FLASHWINFO *info )
|
BOOL WINAPI NtUserFlashWindowEx( FLASHWINFO *info )
|
||||||
{
|
{
|
||||||
if (!unix_funcs) return FALSE;
|
if (!unix_funcs) return FALSE;
|
||||||
|
|
|
@ -436,6 +436,7 @@ NTSTATUS WINAPI NtUserEnumDisplayDevices( UNICODE_STRING *device, DWORD index,
|
||||||
BOOL WINAPI NtUserEnumDisplayMonitors( HDC hdc, RECT *rect, MONITORENUMPROC proc, LPARAM lp );
|
BOOL WINAPI NtUserEnumDisplayMonitors( HDC hdc, RECT *rect, MONITORENUMPROC proc, LPARAM lp );
|
||||||
BOOL WINAPI NtUserEnumDisplaySettings( UNICODE_STRING *device, DWORD mode,
|
BOOL WINAPI NtUserEnumDisplaySettings( UNICODE_STRING *device, DWORD mode,
|
||||||
DEVMODEW *dev_mode, DWORD flags );
|
DEVMODEW *dev_mode, DWORD flags );
|
||||||
|
INT WINAPI NtUserExcludeUpdateRgn( HDC hdc, HWND hwnd );
|
||||||
HICON WINAPI NtUserFindExistingCursorIcon( UNICODE_STRING *module, UNICODE_STRING *res_name,
|
HICON WINAPI NtUserFindExistingCursorIcon( UNICODE_STRING *module, UNICODE_STRING *res_name,
|
||||||
void *desc );
|
void *desc );
|
||||||
BOOL WINAPI NtUserFlashWindowEx( FLASHWINFO *info );
|
BOOL WINAPI NtUserFlashWindowEx( FLASHWINFO *info );
|
||||||
|
|
Loading…
Reference in New Issue