win32u: Partially move handle_internal_message 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
36378958f7
commit
fcc1581938
|
@ -124,11 +124,6 @@ static BOOL CDECL nulldrv_SetCursorPos( INT x, INT y )
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
static BOOL CDECL nulldrv_ClipCursor( LPCRECT clip )
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void CDECL nulldrv_UpdateClipboard(void)
|
||||
{
|
||||
}
|
||||
|
@ -230,11 +225,6 @@ static BOOL CDECL nulldrv_UpdateLayeredWindow( HWND hwnd, const UPDATELAYEREDWIN
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
static LRESULT CDECL nulldrv_WindowMessage( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam )
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static BOOL CDECL nulldrv_WindowPosChanging( HWND hwnd, HWND insert_after, UINT swp_flags,
|
||||
const RECT *window_rect, const RECT *client_rect,
|
||||
RECT *visible_rect, struct window_surface **surface )
|
||||
|
@ -262,11 +252,6 @@ static BOOL CDECL loaderdrv_SetCursorPos( INT x, INT y )
|
|||
return load_driver()->pSetCursorPos( x, y );
|
||||
}
|
||||
|
||||
static BOOL CDECL loaderdrv_ClipCursor( LPCRECT clip )
|
||||
{
|
||||
return load_driver()->pClipCursor( clip );
|
||||
}
|
||||
|
||||
static void CDECL loaderdrv_UpdateClipboard(void)
|
||||
{
|
||||
load_driver()->pUpdateClipboard();
|
||||
|
@ -327,7 +312,7 @@ static struct user_driver_funcs lazy_load_driver =
|
|||
NULL,
|
||||
NULL,
|
||||
loaderdrv_SetCursorPos,
|
||||
loaderdrv_ClipCursor,
|
||||
NULL,
|
||||
/* clipboard functions */
|
||||
loaderdrv_UpdateClipboard,
|
||||
/* display modes */
|
||||
|
@ -354,7 +339,7 @@ static struct user_driver_funcs lazy_load_driver =
|
|||
nulldrv_ShowWindow,
|
||||
nulldrv_SysCommand,
|
||||
loaderdrv_UpdateLayeredWindow,
|
||||
nulldrv_WindowMessage,
|
||||
NULL,
|
||||
nulldrv_WindowPosChanging,
|
||||
nulldrv_WindowPosChanged,
|
||||
/* system parameters */
|
||||
|
@ -382,7 +367,6 @@ void CDECL __wine_set_user_driver( const struct user_driver_funcs *funcs, UINT v
|
|||
do { if (!driver->p##name) driver->p##name = nulldrv_##name; } while(0)
|
||||
|
||||
SET_USER_FUNC(SetCursorPos);
|
||||
SET_USER_FUNC(ClipCursor);
|
||||
SET_USER_FUNC(UpdateClipboard);
|
||||
SET_USER_FUNC(CreateDesktopWindow);
|
||||
SET_USER_FUNC(CreateWindow);
|
||||
|
@ -402,7 +386,6 @@ void CDECL __wine_set_user_driver( const struct user_driver_funcs *funcs, UINT v
|
|||
SET_USER_FUNC(ShowWindow);
|
||||
SET_USER_FUNC(SysCommand);
|
||||
SET_USER_FUNC(UpdateLayeredWindow);
|
||||
SET_USER_FUNC(WindowMessage);
|
||||
SET_USER_FUNC(WindowPosChanging);
|
||||
SET_USER_FUNC(WindowPosChanged);
|
||||
#undef SET_USER_FUNC
|
||||
|
|
|
@ -1855,7 +1855,7 @@ static void reply_message( struct received_message_info *info, LRESULT result, B
|
|||
*
|
||||
* Handle an internal Wine message instead of calling the window proc.
|
||||
*/
|
||||
static LRESULT handle_internal_message( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam )
|
||||
LRESULT handle_internal_message( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam )
|
||||
{
|
||||
switch(msg)
|
||||
{
|
||||
|
@ -1885,22 +1885,18 @@ static LRESULT handle_internal_message( HWND hwnd, UINT msg, WPARAM wparam, LPAR
|
|||
|
||||
return call_current_hook( h_extra->handle, HC_ACTION, wparam, h_extra->lparam );
|
||||
}
|
||||
case WM_WINE_CLIPCURSOR:
|
||||
if (wparam)
|
||||
{
|
||||
RECT rect;
|
||||
GetClipCursor( &rect );
|
||||
return USER_Driver->pClipCursor( &rect );
|
||||
}
|
||||
return USER_Driver->pClipCursor( NULL );
|
||||
case WM_WINE_UPDATEWINDOWSTATE:
|
||||
update_window_state( hwnd );
|
||||
return 0;
|
||||
default:
|
||||
if (msg >= WM_WINE_FIRST_DRIVER_MSG && msg <= WM_WINE_LAST_DRIVER_MSG)
|
||||
return USER_Driver->pWindowMessage( hwnd, msg, wparam, lparam );
|
||||
FIXME( "unknown internal message %x\n", msg );
|
||||
return 0;
|
||||
{
|
||||
MSG m;
|
||||
m.hwnd = hwnd;
|
||||
m.message = msg;
|
||||
m.wParam = wparam;
|
||||
m.lParam = lparam;
|
||||
return NtUserCallOneParam( (UINT_PTR)&m, NtUserHandleInternalMessage );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1065,6 +1065,7 @@ static const struct user_driver_funcs lazy_load_driver =
|
|||
/* windowing functions */
|
||||
.pMsgWaitForMultipleObjectsEx = nulldrv_MsgWaitForMultipleObjectsEx,
|
||||
.pScrollDC = nulldrv_ScrollDC,
|
||||
.pWindowMessage = nulldrv_WindowMessage,
|
||||
/* system parameters */
|
||||
.pSystemParametersInfo = nulldrv_SystemParametersInfo,
|
||||
/* vulkan support */
|
||||
|
|
|
@ -26,7 +26,35 @@
|
|||
|
||||
#include "win32u_private.h"
|
||||
#include "wine/server.h"
|
||||
#include "wine/debug.h"
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(msg);
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* handle_internal_message
|
||||
*
|
||||
* Handle an internal Wine message instead of calling the window proc.
|
||||
*/
|
||||
LRESULT handle_internal_message( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam )
|
||||
{
|
||||
switch(msg)
|
||||
{
|
||||
case WM_WINE_CLIPCURSOR:
|
||||
if (wparam)
|
||||
{
|
||||
RECT rect;
|
||||
get_clip_cursor( &rect );
|
||||
return user_driver->pClipCursor( &rect );
|
||||
}
|
||||
return user_driver->pClipCursor( NULL );
|
||||
default:
|
||||
if (msg >= WM_WINE_FIRST_DRIVER_MSG && msg <= WM_WINE_LAST_DRIVER_MSG)
|
||||
return user_driver->pWindowMessage( hwnd, msg, wparam, lparam );
|
||||
FIXME( "unknown internal message %x\n", msg );
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
/**********************************************************************
|
||||
* NtUserGetGUIThreadInfo (win32u.@)
|
||||
|
|
|
@ -131,6 +131,9 @@ struct user_key_state_info
|
|||
/* cursoricon.c */
|
||||
HICON alloc_cursoricon_handle( BOOL is_icon ) DECLSPEC_HIDDEN;
|
||||
|
||||
/* message.c */
|
||||
LRESULT handle_internal_message( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam ) DECLSPEC_HIDDEN;
|
||||
|
||||
/* window.c */
|
||||
HANDLE alloc_user_handle( struct user_object *ptr, unsigned int type ) DECLSPEC_HIDDEN;
|
||||
void *free_user_handle( HANDLE handle, unsigned int type ) DECLSPEC_HIDDEN;
|
||||
|
|
|
@ -4584,6 +4584,11 @@ ULONG_PTR WINAPI NtUserCallOneParam( ULONG_PTR arg, ULONG code )
|
|||
return 0;
|
||||
case NtUserGetDeskPattern:
|
||||
return get_entry( &entry_DESKPATTERN, 256, (WCHAR *)arg );
|
||||
case NtUserHandleInternalMessage:
|
||||
{
|
||||
MSG *msg = (MSG *)arg;
|
||||
return handle_internal_message( msg->hwnd, msg->message, msg->wParam, msg->lParam );
|
||||
}
|
||||
case NtUserIncrementKeyStateCounter:
|
||||
return InterlockedAdd( &global_key_state_counter, arg );
|
||||
case NtUserLock:
|
||||
|
|
|
@ -92,6 +92,7 @@ enum
|
|||
/* temporary exports */
|
||||
NtUserFlushWindowSurfaces,
|
||||
NtUserGetDeskPattern,
|
||||
NtUserHandleInternalMessage,
|
||||
NtUserIncrementKeyStateCounter,
|
||||
NtUserLock,
|
||||
NtUserNextThreadWindow,
|
||||
|
|
Loading…
Reference in New Issue