From: Santino Mazza smazza@codeweavers.com
--- dlls/dinput/dinput_main.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/dlls/dinput/dinput_main.c b/dlls/dinput/dinput_main.c index eb38bbe4ee9..e4bc1f7961d 100644 --- a/dlls/dinput/dinput_main.c +++ b/dlls/dinput/dinput_main.c @@ -375,6 +375,7 @@ static DWORD WINAPI dinput_thread_proc( void *params ) MSG msg;
SetThreadDescription( GetCurrentThread(), L"wine_dinput_worker" ); + SetThreadDpiAwarenessContext( DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE );
di_em_win = CreateWindowW( L"DIEmWin", L"DIEmWin", 0, 0, 0, 0, 0, HWND_MESSAGE, 0, DINPUT_instance, NULL ); input_thread_state = &state;
From: Santino Mazza smazza@codeweavers.com
--- dlls/win32u/message.c | 5 +++++ 1 file changed, 5 insertions(+)
diff --git a/dlls/win32u/message.c b/dlls/win32u/message.c index 51a173a1173..035ab6574e4 100644 --- a/dlls/win32u/message.c +++ b/dlls/win32u/message.c @@ -2948,8 +2948,13 @@ int peek_message( MSG *msg, const struct peek_message_filter *filter ) } else if (info.msg.message == WH_MOUSE_LL && size >= sizeof(msg_data->hardware)) { + RECT rect = {info.msg.pt.x, info.msg.pt.y, info.msg.pt.x, info.msg.pt.y}; MSLLHOOKSTRUCT hook;
+ rect = map_rect_raw_to_virt( rect, 0 ); + info.msg.pt.x = rect.left; + info.msg.pt.y = rect.top; + hook.pt = info.msg.pt; hook.mouseData = info.msg.lParam; hook.flags = msg_data->hardware.flags;
This merge request was approved by Rémi Bernon.