From 425f75f839bc4c2256f812b5909857d367ca864e Mon Sep 17 00:00:00 2001 From: Zebediah Figura Date: Wed, 14 Apr 2021 19:17:15 -0500 Subject: [PATCH] Rebase against 092c7a09a5afde3f11b71b1816388e80d062e8ec. --- ...user32-Improve-GetKeyboardLayoutList.patch | 12 +- patches/patchinstall.sh | 12 +- ...ser32-tests-Add-more-SendInput-tests.patch | 185 ------------------ ...ement-SendInput-INPUT_HARDWARE-check.patch | 106 ---------- ...INPUT-parameter-to-__wine_send_input.patch | 6 +- ...HWMSG_RAWINPUT-flags-only-when-RAWIN.patch | 6 +- staging/upstream-commit | 2 +- 7 files changed, 18 insertions(+), 311 deletions(-) delete mode 100644 patches/user32-rawinput-hid/0001-user32-tests-Add-more-SendInput-tests.patch delete mode 100644 patches/user32-rawinput-hid/0002-user32-Implement-SendInput-INPUT_HARDWARE-check.patch diff --git a/patches/loader-KeyboardLayouts/0002-user32-Improve-GetKeyboardLayoutList.patch b/patches/loader-KeyboardLayouts/0002-user32-Improve-GetKeyboardLayoutList.patch index 6e992f8a..0b5e45c3 100644 --- a/patches/loader-KeyboardLayouts/0002-user32-Improve-GetKeyboardLayoutList.patch +++ b/patches/loader-KeyboardLayouts/0002-user32-Improve-GetKeyboardLayoutList.patch @@ -1,4 +1,4 @@ -From 27332457e843bbef5d08dd45249956ade1258476 Mon Sep 17 00:00:00 2001 +From dd0c922c02e793aba906cfad855c2474a3c2fe3b Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Tue, 9 Jul 2019 14:13:28 +1000 Subject: [PATCH] user32: Improve GetKeyboardLayoutList @@ -55,11 +55,11 @@ index 7ac77141696..56009667b00 100644 if (baselayout != 0) { diff --git a/dlls/user32/tests/input.c b/dlls/user32/tests/input.c -index ce272ed73f4..9ac14b607cf 100644 +index 2397b4104e4..a5c8521c0e9 100644 --- a/dlls/user32/tests/input.c +++ b/dlls/user32/tests/input.c -@@ -3979,6 +3979,40 @@ static void test_UnregisterDeviceNotification(void) - ok(ret == FALSE, "Unregistering NULL Device Notification returned: %d\n", ret); +@@ -4322,6 +4322,40 @@ static void test_SendInput(void) + DestroyWindow( hwnd ); } +static void test_GetKeyboardLayoutList(void) @@ -99,7 +99,7 @@ index ce272ed73f4..9ac14b607cf 100644 START_TEST(input) { char **argv; -@@ -4020,6 +4054,7 @@ START_TEST(input) +@@ -4364,6 +4398,7 @@ START_TEST(input) test_GetRawInputBuffer(); test_RegisterRawInputDevices(); test_rawinput(argv[0]); @@ -108,5 +108,5 @@ index ce272ed73f4..9ac14b607cf 100644 if(pGetMouseMovePointsEx) test_GetMouseMovePointsEx(argv[0]); -- -2.28.0 +2.30.2 diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 7615077c..60e3ad0a 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -51,7 +51,7 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "c6393968754d64189f111e9277fb9060ec415fae" + echo "092c7a09a5afde3f11b71b1816388e80d062e8ec" } # Show version information @@ -3853,14 +3853,12 @@ fi # | Modified files: # | * dlls/hidclass.sys/Makefile.in, dlls/hidclass.sys/device.c, dlls/hidclass.sys/hid.h, dlls/hidclass.sys/pnp.c, # | dlls/ntoskrnl.exe/ntoskrnl.exe.spec, dlls/ntoskrnl.exe/pnp.c, dlls/user32/input.c, dlls/user32/message.c, -# | dlls/user32/rawinput.c, dlls/user32/tests/input.c, dlls/user32/user32.spec, dlls/user32/user_private.h, -# | dlls/wineandroid.drv/keyboard.c, dlls/wineandroid.drv/window.c, dlls/winemac.drv/ime.c, dlls/winemac.drv/keyboard.c, -# | dlls/winemac.drv/mouse.c, dlls/winex11.drv/keyboard.c, dlls/winex11.drv/mouse.c, include/ddk/wdm.h, include/winuser.h, -# | server/protocol.def, server/queue.c, server/trace.c +# | dlls/user32/rawinput.c, dlls/user32/user32.spec, dlls/user32/user_private.h, dlls/wineandroid.drv/keyboard.c, +# | dlls/wineandroid.drv/window.c, dlls/winemac.drv/ime.c, dlls/winemac.drv/keyboard.c, dlls/winemac.drv/mouse.c, +# | dlls/winex11.drv/keyboard.c, dlls/winex11.drv/mouse.c, include/ddk/wdm.h, include/winuser.h, server/protocol.def, +# | server/queue.c, server/trace.c # | if test "$enable_user32_rawinput_hid" -eq 1; then - patch_apply user32-rawinput-hid/0001-user32-tests-Add-more-SendInput-tests.patch - patch_apply user32-rawinput-hid/0002-user32-Implement-SendInput-INPUT_HARDWARE-check.patch patch_apply user32-rawinput-hid/0003-user32-Add-RAWINPUT-parameter-to-__wine_send_input.patch patch_apply user32-rawinput-hid/0004-hidclass.sys-Assign-rawinput-device-handle-in-HID_Li.patch patch_apply user32-rawinput-hid/0005-hidclass.sys-Use-__wine_send_input-to-send-device-no.patch diff --git a/patches/user32-rawinput-hid/0001-user32-tests-Add-more-SendInput-tests.patch b/patches/user32-rawinput-hid/0001-user32-tests-Add-more-SendInput-tests.patch deleted file mode 100644 index 22c19908..00000000 --- a/patches/user32-rawinput-hid/0001-user32-tests-Add-more-SendInput-tests.patch +++ /dev/null @@ -1,185 +0,0 @@ -From ce4894689736dc2e49b2b7550802ab1f2a4eb462 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?R=C3=A9mi=20Bernon?= -Date: Tue, 9 Mar 2021 12:02:18 +0100 -Subject: [PATCH] user32/tests: Add more SendInput tests. - -Validating that SendInput with INPUT_HARDWARE type should be no-op. - -Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50506 ---- - dlls/user32/input.c | 18 ++++++ - dlls/user32/tests/input.c | 122 ++++++++++++++++++++++++++++++++++++++ - 2 files changed, 140 insertions(+) - -diff --git a/dlls/user32/input.c b/dlls/user32/input.c -index 8992c463c48..22e53585f00 100644 ---- a/dlls/user32/input.c -+++ b/dlls/user32/input.c -@@ -182,6 +182,24 @@ UINT WINAPI SendInput( UINT count, LPINPUT inputs, int size ) - UINT i; - NTSTATUS status; - -+ if (size != sizeof(INPUT)) -+ { -+ SetLastError( ERROR_INVALID_PARAMETER ); -+ return 0; -+ } -+ -+ if (!count) -+ { -+ SetLastError( ERROR_INVALID_PARAMETER ); -+ return 0; -+ } -+ -+ if (!inputs) -+ { -+ SetLastError( ERROR_NOACCESS ); -+ return 0; -+ } -+ - for (i = 0; i < count; i++) - { - if (inputs[i].type == INPUT_MOUSE) -diff --git a/dlls/user32/tests/input.c b/dlls/user32/tests/input.c -index 06f90291fd1..0584f89f55a 100644 ---- a/dlls/user32/tests/input.c -+++ b/dlls/user32/tests/input.c -@@ -4246,6 +4246,127 @@ static void test_GetKeyboardLayoutList(void) - } - } - -+static void test_SendInput(void) -+{ -+ INPUT input[16]; -+ UINT res, i; -+ HWND hwnd; -+ MSG msg; -+ -+ hwnd = CreateWindowW( L"static", L"test", WS_OVERLAPPED, 0, 0, 100, 100, 0, 0, 0, 0 ); -+ ok( hwnd != 0, "CreateWindowW failed\n" ); -+ -+ ShowWindow( hwnd, SW_SHOWNORMAL ); -+ UpdateWindow( hwnd ); -+ SetForegroundWindow( hwnd ); -+ SetFocus( hwnd ); -+ empty_message_queue(); -+ -+ SetLastError( 0xdeadbeef ); -+ res = SendInput( 0, NULL, 0 ); -+ ok( res == 0 && GetLastError() == ERROR_INVALID_PARAMETER, "SendInput returned %u, error %#x\n", res, GetLastError() ); -+ SetLastError( 0xdeadbeef ); -+ res = SendInput( 1, NULL, 0 ); -+ ok( res == 0 && GetLastError() == ERROR_INVALID_PARAMETER, "SendInput returned %u, error %#x\n", res, GetLastError() ); -+ SetLastError( 0xdeadbeef ); -+ res = SendInput( 1, NULL, sizeof(*input) ); -+ ok( res == 0 && (GetLastError() == ERROR_NOACCESS || GetLastError() == ERROR_INVALID_PARAMETER), -+ "SendInput returned %u, error %#x\n", res, GetLastError() ); -+ SetLastError( 0xdeadbeef ); -+ res = SendInput( 0, input, sizeof(*input) ); -+ ok( res == 0 && GetLastError() == ERROR_INVALID_PARAMETER, "SendInput returned %u, error %#x\n", res, GetLastError() ); -+ SetLastError( 0xdeadbeef ); -+ res = SendInput( 0, NULL, sizeof(*input) ); -+ ok( res == 0 && GetLastError() == ERROR_INVALID_PARAMETER, "SendInput returned %u, error %#x\n", res, GetLastError() ); -+ -+ memset( input, 0, sizeof(input) ); -+ SetLastError( 0xdeadbeef ); -+ res = SendInput( 1, input, sizeof(*input) ); -+ ok( res == 1 && GetLastError() == 0xdeadbeef, "SendInput returned %u, error %#x\n", res, GetLastError() ); -+ SetLastError( 0xdeadbeef ); -+ res = SendInput( 16, input, sizeof(*input) ); -+ ok( res == 16 && GetLastError() == 0xdeadbeef, "SendInput returned %u, error %#x\n", res, GetLastError() ); -+ -+ SetLastError( 0xdeadbeef ); -+ res = SendInput( 1, input, 0 ); -+ ok( res == 0 && GetLastError() == ERROR_INVALID_PARAMETER, "SendInput returned %u, error %#x\n", res, GetLastError() ); -+ SetLastError( 0xdeadbeef ); -+ res = SendInput( 1, input, sizeof(*input) + 1 ); -+ ok( res == 0 && GetLastError() == ERROR_INVALID_PARAMETER, "SendInput returned %u, error %#x\n", res, GetLastError() ); -+ SetLastError( 0xdeadbeef ); -+ res = SendInput( 1, input, sizeof(*input) - 1 ); -+ ok( res == 0 && GetLastError() == ERROR_INVALID_PARAMETER, "SendInput returned %u, error %#x\n", res, GetLastError() ); -+ -+ for (i = 0; i < ARRAY_SIZE(input); ++i) input[i].type = INPUT_KEYBOARD; -+ SetLastError( 0xdeadbeef ); -+ res = SendInput( 16, input, offsetof( INPUT, ki ) + sizeof(KEYBDINPUT) ); -+ ok( res == 0 && GetLastError() == ERROR_INVALID_PARAMETER, "SendInput returned %u, error %#x\n", res, GetLastError() ); -+ SetLastError( 0xdeadbeef ); -+ res = SendInput( 16, input, sizeof(*input) ); -+ ok( res == 16 && GetLastError() == 0xdeadbeef, "SendInput returned %u, error %#x\n", res, GetLastError() ); -+ empty_message_queue(); -+ -+ for (i = 0; i < ARRAY_SIZE(input); ++i) input[i].type = INPUT_HARDWARE; -+ SetLastError( 0xdeadbeef ); -+ res = SendInput( 16, input, offsetof( INPUT, hi ) + sizeof(HARDWAREINPUT) ); -+ ok( res == 0 && GetLastError() == ERROR_INVALID_PARAMETER, "SendInput returned %u, error %#x\n", res, GetLastError() ); -+ -+ input[0].hi.uMsg = WM_KEYDOWN; -+ input[0].hi.wParamL = 0; -+ input[0].hi.wParamH = 'A'; -+ input[1].hi.uMsg = WM_KEYUP; -+ input[1].hi.wParamL = 0; -+ input[1].hi.wParamH = 'A' | 0xc000; -+ SetLastError( 0xdeadbeef ); -+ res = SendInput( 16, input, sizeof(*input) ); -+#ifdef _WIN64 -+ todo_wine -+ ok( res == 0 && GetLastError() == ERROR_CALL_NOT_IMPLEMENTED, "SendInput returned %u, error %#x\n", res, GetLastError() ); -+#else -+ ok( res == 16 && GetLastError() == 0xdeadbeef, "SendInput returned %u, error %#x\n", res, GetLastError() ); -+#endif -+ while ((res = wait_for_message(&msg)) && msg.message == WM_TIMER) DispatchMessageA(&msg); -+ todo_wine ok( !res, "SendInput triggered unexpected message %#x\n", msg.message ); -+ empty_message_queue(); -+ -+ memset( input, 0, sizeof(input) ); -+ input[0].type = INPUT_HARDWARE; -+ input[1].type = INPUT_KEYBOARD; -+ input[1].ki.wVk = 'A'; -+ input[1].ki.dwFlags = 0; -+ input[2].type = INPUT_KEYBOARD; -+ input[2].ki.wVk = 'A'; -+ input[2].ki.dwFlags = KEYEVENTF_KEYUP; -+ SetLastError( 0xdeadbeef ); -+ res = SendInput( 16, input, sizeof(*input) ); -+#ifdef _WIN64 -+ todo_wine ok( res == 0 && GetLastError() == ERROR_CALL_NOT_IMPLEMENTED, "SendInput returned %u, error %#x\n", res, GetLastError() ); -+ while ((res = wait_for_message(&msg)) && msg.message == WM_TIMER) DispatchMessageA(&msg); -+ todo_wine ok( !res, "SendInput triggered unexpected message %#x\n", msg.message ); -+ empty_message_queue(); -+#else -+ ok( res == 16 && GetLastError() == 0xdeadbeef, "SendInput returned %u, error %#x\n", res, GetLastError() ); -+ while ((res = wait_for_message(&msg)) && msg.message == WM_TIMER) DispatchMessageA(&msg); -+ ok( !!res, "SendInput did not trigger any message\n" ); -+ todo_wine ok( msg.message == WM_KEYDOWN, "SendInput triggered unexpected message %#x\n", msg.message ); -+ while ((res = wait_for_message(&msg)) && msg.message == WM_TIMER) DispatchMessageA(&msg); -+ ok( !!res, "SendInput did not trigger any message\n" ); -+ todo_wine ok( msg.message == WM_KEYUP, "SendInput triggered unexpected message %#x\n", msg.message ); -+ empty_message_queue(); -+#endif -+ -+ for (i = 0; i < ARRAY_SIZE(input); ++i) input[i].type = INPUT_HARDWARE + 1; -+ SetLastError( 0xdeadbeef ); -+ res = SendInput( 16, input, sizeof(*input) ); -+ todo_wine ok( res == 16 && GetLastError() == 0xdeadbeef, "SendInput returned %u, error %#x\n", res, GetLastError() ); -+ while ((res = wait_for_message(&msg)) && msg.message == WM_TIMER) DispatchMessageA(&msg); -+ todo_wine ok( !res, "SendInput triggered unexpected message %#x\n", msg.message ); -+ empty_message_queue(); -+ -+ trace( "done\n" ); -+ DestroyWindow( hwnd ); -+} -+ - START_TEST(input) - { - char **argv; -@@ -4268,6 +4389,7 @@ START_TEST(input) - return; - } - -+ test_SendInput(); - test_Input_blackbox(); - test_Input_whitebox(); - test_Input_unicode(); --- -2.30.2 - diff --git a/patches/user32-rawinput-hid/0002-user32-Implement-SendInput-INPUT_HARDWARE-check.patch b/patches/user32-rawinput-hid/0002-user32-Implement-SendInput-INPUT_HARDWARE-check.patch deleted file mode 100644 index 7e4fd228..00000000 --- a/patches/user32-rawinput-hid/0002-user32-Implement-SendInput-INPUT_HARDWARE-check.patch +++ /dev/null @@ -1,106 +0,0 @@ -From d9554c180611116398e700ed7f2d8f021bd06924 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?R=C3=A9mi=20Bernon?= -Date: Wed, 7 Apr 2021 10:34:23 +0200 -Subject: [PATCH] user32: Implement SendInput INPUT_HARDWARE check. - -Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50506 ---- - dlls/user32/input.c | 16 ++++++++++++---- - dlls/user32/tests/input.c | 15 +++++++-------- - 2 files changed, 19 insertions(+), 12 deletions(-) - -diff --git a/dlls/user32/input.c b/dlls/user32/input.c -index 22e53585f00..e97264960ea 100644 ---- a/dlls/user32/input.c -+++ b/dlls/user32/input.c -@@ -180,7 +180,7 @@ static void update_mouse_coords( INPUT *input ) - UINT WINAPI SendInput( UINT count, LPINPUT inputs, int size ) - { - UINT i; -- NTSTATUS status; -+ NTSTATUS status = STATUS_SUCCESS; - - if (size != sizeof(INPUT)) - { -@@ -202,14 +202,22 @@ UINT WINAPI SendInput( UINT count, LPINPUT inputs, int size ) - - for (i = 0; i < count; i++) - { -- if (inputs[i].type == INPUT_MOUSE) -+ INPUT input = inputs[i]; -+ switch (input.type) - { -+ case INPUT_MOUSE: - /* we need to update the coordinates to what the server expects */ -- INPUT input = inputs[i]; - update_mouse_coords( &input ); -+ /* fallthrough */ -+ case INPUT_KEYBOARD: - status = send_hardware_message( 0, &input, SEND_HWMSG_INJECTED ); -+ break; -+#ifdef _WIN64 -+ case INPUT_HARDWARE: -+ SetLastError( ERROR_CALL_NOT_IMPLEMENTED ); -+ return 0; -+#endif - } -- else status = send_hardware_message( 0, &inputs[i], SEND_HWMSG_INJECTED ); - - if (status) - { -diff --git a/dlls/user32/tests/input.c b/dlls/user32/tests/input.c -index f48807a27a0..564ab2e1ba0 100644 ---- a/dlls/user32/tests/input.c -+++ b/dlls/user32/tests/input.c -@@ -4286,13 +4286,12 @@ static void test_SendInput(void) - SetLastError( 0xdeadbeef ); - res = SendInput( 16, input, sizeof(*input) ); - #ifdef _WIN64 -- todo_wine - ok( res == 0 && GetLastError() == ERROR_CALL_NOT_IMPLEMENTED, "SendInput returned %u, error %#x\n", res, GetLastError() ); - #else - ok( res == 16 && GetLastError() == 0xdeadbeef, "SendInput returned %u, error %#x\n", res, GetLastError() ); - #endif - while ((res = wait_for_message(&msg)) && msg.message == WM_TIMER) DispatchMessageA(&msg); -- todo_wine ok( !res, "SendInput triggered unexpected message %#x\n", msg.message ); -+ ok( !res, "SendInput triggered unexpected message %#x\n", msg.message ); - empty_message_queue(); - - memset( input, 0, sizeof(input) ); -@@ -4306,27 +4305,27 @@ static void test_SendInput(void) - SetLastError( 0xdeadbeef ); - res = SendInput( 16, input, sizeof(*input) ); - #ifdef _WIN64 -- todo_wine ok( res == 0 && GetLastError() == ERROR_CALL_NOT_IMPLEMENTED, "SendInput returned %u, error %#x\n", res, GetLastError() ); -+ ok( res == 0 && GetLastError() == ERROR_CALL_NOT_IMPLEMENTED, "SendInput returned %u, error %#x\n", res, GetLastError() ); - while ((res = wait_for_message(&msg)) && msg.message == WM_TIMER) DispatchMessageA(&msg); -- todo_wine ok( !res, "SendInput triggered unexpected message %#x\n", msg.message ); -+ ok( !res, "SendInput triggered unexpected message %#x\n", msg.message ); - empty_message_queue(); - #else - ok( res == 16 && GetLastError() == 0xdeadbeef, "SendInput returned %u, error %#x\n", res, GetLastError() ); - while ((res = wait_for_message(&msg)) && msg.message == WM_TIMER) DispatchMessageA(&msg); - ok( !!res, "SendInput did not trigger any message\n" ); -- todo_wine ok( msg.message == WM_KEYDOWN, "SendInput triggered unexpected message %#x\n", msg.message ); -+ ok( msg.message == WM_KEYDOWN, "SendInput triggered unexpected message %#x\n", msg.message ); - while ((res = wait_for_message(&msg)) && msg.message == WM_TIMER) DispatchMessageA(&msg); - ok( !!res, "SendInput did not trigger any message\n" ); -- todo_wine ok( msg.message == WM_KEYUP, "SendInput triggered unexpected message %#x\n", msg.message ); -+ ok( msg.message == WM_KEYUP, "SendInput triggered unexpected message %#x\n", msg.message ); - empty_message_queue(); - #endif - - for (i = 0; i < ARRAY_SIZE(input); ++i) input[i].type = INPUT_HARDWARE + 1; - SetLastError( 0xdeadbeef ); - res = SendInput( 16, input, sizeof(*input) ); -- todo_wine ok( res == 16 && GetLastError() == 0xdeadbeef, "SendInput returned %u, error %#x\n", res, GetLastError() ); -+ ok( res == 16 && GetLastError() == 0xdeadbeef, "SendInput returned %u, error %#x\n", res, GetLastError() ); - while ((res = wait_for_message(&msg)) && msg.message == WM_TIMER) DispatchMessageA(&msg); -- todo_wine ok( !res, "SendInput triggered unexpected message %#x\n", msg.message ); -+ ok( !res, "SendInput triggered unexpected message %#x\n", msg.message ); - empty_message_queue(); - - trace( "done\n" ); --- -2.30.2 - diff --git a/patches/user32-rawinput-hid/0003-user32-Add-RAWINPUT-parameter-to-__wine_send_input.patch b/patches/user32-rawinput-hid/0003-user32-Add-RAWINPUT-parameter-to-__wine_send_input.patch index acc66ef3..1e67e54a 100644 --- a/patches/user32-rawinput-hid/0003-user32-Add-RAWINPUT-parameter-to-__wine_send_input.patch +++ b/patches/user32-rawinput-hid/0003-user32-Add-RAWINPUT-parameter-to-__wine_send_input.patch @@ -1,4 +1,4 @@ -From 1d4f802b393ca552ec262f359794277c9ecf2c7f Mon Sep 17 00:00:00 2001 +From e37a301a9492b6f9ea418556c7df703899a8be58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Bernon?= Date: Wed, 7 Apr 2021 14:52:00 +0200 Subject: [PATCH] user32: Add RAWINPUT parameter to __wine_send_input. @@ -26,7 +26,7 @@ Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50506 12 files changed, 19 insertions(+), 19 deletions(-) diff --git a/dlls/user32/input.c b/dlls/user32/input.c -index e97264960ea..3fc818a2510 100644 +index 7cf7e53a6c8..805bfe3e9de 100644 --- a/dlls/user32/input.c +++ b/dlls/user32/input.c @@ -119,9 +119,9 @@ BOOL set_capture_window( HWND hwnd, UINT gui_flags, HWND *prev_ret ) @@ -48,8 +48,8 @@ index e97264960ea..3fc818a2510 100644 - status = send_hardware_message( 0, &input, SEND_HWMSG_INJECTED ); + status = send_hardware_message( 0, &input, NULL, SEND_HWMSG_INJECTED ); break; - #ifdef _WIN64 case INPUT_HARDWARE: + SetLastError( ERROR_CALL_NOT_IMPLEMENTED ); diff --git a/dlls/user32/message.c b/dlls/user32/message.c index def59998a52..f87ef9fb3af 100644 --- a/dlls/user32/message.c diff --git a/patches/user32-rawinput-mouse/0006-user32-Set-SEND_HWMSG_RAWINPUT-flags-only-when-RAWIN.patch b/patches/user32-rawinput-mouse/0006-user32-Set-SEND_HWMSG_RAWINPUT-flags-only-when-RAWIN.patch index 6fb04e0b..80bf2148 100644 --- a/patches/user32-rawinput-mouse/0006-user32-Set-SEND_HWMSG_RAWINPUT-flags-only-when-RAWIN.patch +++ b/patches/user32-rawinput-mouse/0006-user32-Set-SEND_HWMSG_RAWINPUT-flags-only-when-RAWIN.patch @@ -1,4 +1,4 @@ -From acd309726a5ca6ac94a7ea13c92382ae637e21ab Mon Sep 17 00:00:00 2001 +From 5505c3b36acb807fe810dad5094806205f2be804 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Bernon?= Date: Wed, 24 Mar 2021 23:29:28 +0100 Subject: [PATCH] user32: Set SEND_HWMSG_RAWINPUT flags only when RAWINPUT is @@ -20,7 +20,7 @@ __wine_send_input with INPUT_HARDWARE input type and a rawinput. 9 files changed, 26 insertions(+), 15 deletions(-) diff --git a/dlls/user32/input.c b/dlls/user32/input.c -index 3fc818a2510..af1ad797102 100644 +index 805bfe3e9de..e78c6b9ce83 100644 --- a/dlls/user32/input.c +++ b/dlls/user32/input.c @@ -181,6 +181,7 @@ UINT WINAPI SendInput( UINT count, LPINPUT inputs, int size ) @@ -38,8 +38,8 @@ index 3fc818a2510..af1ad797102 100644 - status = send_hardware_message( 0, &input, NULL, SEND_HWMSG_INJECTED ); + status = send_hardware_message( 0, &input, &rawinput, SEND_HWMSG_INJECTED ); break; - #ifdef _WIN64 case INPUT_HARDWARE: + SetLastError( ERROR_CALL_NOT_IMPLEMENTED ); diff --git a/dlls/user32/message.c b/dlls/user32/message.c index 98f6c2730e0..43c6adad033 100644 --- a/dlls/user32/message.c diff --git a/staging/upstream-commit b/staging/upstream-commit index b8229372..595714c8 100644 --- a/staging/upstream-commit +++ b/staging/upstream-commit @@ -1 +1 @@ -c6393968754d64189f111e9277fb9060ec415fae +092c7a09a5afde3f11b71b1816388e80d062e8ec