user32-rawinput-mouse: Fix some dependencies.

This commit is contained in:
Zebediah Figura 2020-04-05 11:30:15 -05:00
parent 4d01e48843
commit f23b6cb7dc
5 changed files with 131 additions and 119 deletions

View File

@ -1,8 +1,8 @@
From 055edbb9f2cdf23160fa9be1d7f597ec9935c19c Mon Sep 17 00:00:00 2001
From 997461625f8169228a34358a6908ff24b1d4f602 Mon Sep 17 00:00:00 2001
From: Zebediah Figura <z.figura12@gmail.com>
Date: Mon, 13 Aug 2018 21:35:06 -0500
Subject: [PATCH 79/83] ntdll, server: Revert to old implementation of hung
queue detection.
Subject: [PATCH] ntdll, server: Revert to old implementation of hung queue
detection.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@ -22,7 +22,7 @@ critical code that this patchset was written for.
3 files changed, 73 insertions(+), 21 deletions(-)
diff --git a/dlls/ntdll/esync.c b/dlls/ntdll/esync.c
index b84b7b83c..501175c1d 100644
index ea4654d1f13..4ffbc4bd25e 100644
--- a/dlls/ntdll/esync.c
+++ b/dlls/ntdll/esync.c
@@ -831,8 +831,8 @@ static void update_grabbed_object( struct esync *obj )
@ -59,7 +59,7 @@ index b84b7b83c..501175c1d 100644
}
if (has_esync && has_server)
@@ -1282,6 +1271,44 @@ userapc:
@@ -1283,6 +1272,44 @@ userapc:
return ret;
}
@ -105,10 +105,10 @@ index b84b7b83c..501175c1d 100644
const LARGE_INTEGER *timeout )
{
diff --git a/server/protocol.def b/server/protocol.def
index dbb8770df..fb7f1ad1e 100644
index 7082fee04b5..7078c33b94b 100644
--- a/server/protocol.def
+++ b/server/protocol.def
@@ -4078,7 +4078,11 @@ struct handle_info
@@ -4077,7 +4077,11 @@ struct handle_info
/* Retrieve the fd to wait on for user APCs. */
@REQ(get_esync_apc_fd)
@ -122,7 +122,7 @@ index dbb8770df..fb7f1ad1e 100644
enum esync_type
diff --git a/server/queue.c b/server/queue.c
index 174a4ac09..56fa4d98c 100644
index b6ed2478c6e..5eb1a046f7b 100644
--- a/server/queue.c
+++ b/server/queue.c
@@ -126,6 +126,7 @@ struct msg_queue
@ -177,9 +177,9 @@ index 174a4ac09..56fa4d98c 100644
if (!(msg = mem_alloc( sizeof(*msg) ))) return 0;
@@ -3289,3 +3299,14 @@ DECL_HANDLER(update_rawinput_devices)
e = find_rawinput_device( 1, 6 );
current->process->rawinput_kbd = e ? &e->device : NULL;
@@ -3383,3 +3393,14 @@ DECL_HANDLER(get_rawinput_devices)
set_reply_data_ptr( devices, device_count * sizeof (*devices) );
}
+
+DECL_HANDLER(esync_msgwait)
@ -193,5 +193,5 @@ index 174a4ac09..56fa4d98c 100644
+ set_event( current->process->idle_event );
+}
--
2.20.1
2.26.0

View File

@ -10,3 +10,4 @@ Depends: ntdll-User_Shared_Data
Depends: advapi32-Token_Integrity_Level
Depends: ntdll-Junction_Points
Depends: kernel32-K32GetPerformanceInfo
Depends: user32-rawinput-mouse

View File

@ -1628,13 +1628,6 @@ if test "$enable_user32_rawinput_nolegacy" -eq 1; then
enable_user32_rawinput_mouse=1
fi
if test "$enable_user32_rawinput_mouse" -eq 1; then
if test "$enable_winex11_drv_mouse_coorrds" -gt 1; then
abort "Patchset winex11.drv-mouse-coorrds disabled, but user32-rawinput-mouse depends on that."
fi
enable_winex11_drv_mouse_coorrds=1
fi
if test "$enable_stdole32_tlb_SLTG_Typelib" -eq 1; then
if test "$enable_widl_SLTG_Typelib_Support" -gt 1; then
abort "Patchset widl-SLTG_Typelib_Support disabled, but stdole32.tlb-SLTG_Typelib depends on that."
@ -1840,6 +1833,9 @@ if test "$enable_eventfd_synchronization" -eq 1; then
if test "$enable_server_Shared_Memory" -gt 1; then
abort "Patchset server-Shared_Memory disabled, but eventfd_synchronization depends on that."
fi
if test "$enable_user32_rawinput_mouse" -gt 1; then
abort "Patchset user32-rawinput-mouse disabled, but eventfd_synchronization depends on that."
fi
if test "$enable_ws2_32_WSACleanup" -gt 1; then
abort "Patchset ws2_32-WSACleanup disabled, but eventfd_synchronization depends on that."
fi
@ -1851,9 +1847,21 @@ if test "$enable_eventfd_synchronization" -eq 1; then
enable_ntdll_User_Shared_Data=1
enable_server_Realtime_Priority=1
enable_server_Shared_Memory=1
enable_user32_rawinput_mouse=1
enable_ws2_32_WSACleanup=1
fi
if test "$enable_user32_rawinput_mouse" -eq 1; then
if test "$enable_loader_KeyboardLayouts" -gt 1; then
abort "Patchset loader-KeyboardLayouts disabled, but user32-rawinput-mouse depends on that."
fi
if test "$enable_winex11_drv_mouse_coorrds" -gt 1; then
abort "Patchset winex11.drv-mouse-coorrds disabled, but user32-rawinput-mouse depends on that."
fi
enable_loader_KeyboardLayouts=1
enable_winex11_drv_mouse_coorrds=1
fi
if test "$enable_server_Shared_Memory" -eq 1; then
if test "$enable_ntdll_Threading" -gt 1; then
abort "Patchset ntdll-Threading disabled, but server-Shared_Memory depends on that."
@ -3549,6 +3557,84 @@ if test "$enable_server_Shared_Memory" -eq 1; then
) >> "$patchlist"
fi
# Patchset loader-KeyboardLayouts
# |
# | This patchset fixes the following Wine bugs:
# | * [#47439] loader: Add Keyboard Layouts registry enteries.
# |
# | Modified files:
# | * dlls/user32/driver.c, dlls/user32/tests/input.c, loader/wine.inf.in
# |
if test "$enable_loader_KeyboardLayouts" -eq 1; then
patch_apply loader-KeyboardLayouts/0001-loader-Add-Keyboard-Layouts-registry-enteries.patch
patch_apply loader-KeyboardLayouts/0002-user32-Improve-GetKeyboardLayoutList.patch
(
printf '%s\n' '+ { "Alistair Leslie-Hughes", "loader: Add Keyboard Layouts registry enteries.", 1 },';
printf '%s\n' '+ { "Alistair Leslie-Hughes", "user32: Improve GetKeyboardLayoutList.", 1 },';
) >> "$patchlist"
fi
# Patchset winex11.drv-mouse-coorrds
# |
# | This patchset fixes the following Wine bugs:
# | * [#46309] winex11.drv: Use root-relative coordinates for events, if possible.
# |
# | Modified files:
# | * dlls/winex11.drv/mouse.c
# |
if test "$enable_winex11_drv_mouse_coorrds" -eq 1; then
patch_apply winex11.drv-mouse-coorrds/0001-winex11.drv-mouse-Use-root-relative-coordinates-for-ev.patch
(
printf '%s\n' '+ { "Gabriel Ivăncescu", "winex11.drv/mouse: Use root-relative coordinates for events, if possible.", 1 },';
) >> "$patchlist"
fi
# Patchset user32-rawinput-mouse
# |
# | This patchset has the following (direct or indirect) dependencies:
# | * loader-KeyboardLayouts, winex11.drv-mouse-coorrds
# |
# | This patchset fixes the following Wine bugs:
# | * [#42631] Mouse drift, jump or don't react to small slow movements in Unity-engine games and Fallout 4 (partly fixed in
# | Unity games, have walkaround in Fallout4 )
# | * [#42675] Overwatch: Phantom mouse input / view pulled up to ceiling
# |
# | Modified files:
# | * dlls/dinput/device_private.h, dlls/dinput/dinput_main.c, dlls/dinput/mouse.c, dlls/dinput8/tests/device.c,
# | dlls/user32/input.c, dlls/user32/rawinput.c, dlls/user32/tests/input.c, dlls/user32/user32.spec,
# | 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/event.c, dlls/winex11.drv/keyboard.c, dlls/winex11.drv/mouse.c,
# | dlls/winex11.drv/x11drv.h, dlls/winex11.drv/x11drv_main.c, include/winuser.h, server/protocol.def, server/queue.c
# |
if test "$enable_user32_rawinput_mouse" -eq 1; then
patch_apply user32-rawinput-mouse/0001-user32-tests-Add-rawinput-test-for-ClipCursor-intera.patch
patch_apply user32-rawinput-mouse/0002-user32-tests-Add-rawinput-test-for-cross-thread-inte.patch
patch_apply user32-rawinput-mouse/0003-user32-tests-Add-rawinput-test-for-cross-process-int.patch
patch_apply user32-rawinput-mouse/0004-server-Add-send_hardware_message-flags-for-rawinput-.patch
patch_apply user32-rawinput-mouse/0005-server-Broadcast-rawinput-message-if-request-flag-is.patch
patch_apply user32-rawinput-mouse/0006-user32-Add-__wine_send_input-flags-to-hint-raw-input.patch
patch_apply user32-rawinput-mouse/0007-winex11.drv-Advertise-XInput2-version-2.1-support.patch
patch_apply user32-rawinput-mouse/0008-winex11.drv-Keep-track-of-pointer-and-device-button-.patch
patch_apply user32-rawinput-mouse/0009-winex11.drv-Listen-to-RawMotion-and-RawButton-events.patch
patch_apply user32-rawinput-mouse/0010-user32-Implement-GetRegisteredRawInputDevices.patch
patch_apply user32-rawinput-mouse/0011-dinput8-Add-support-for-dinput-devices-that-use-raw-.patch
patch_apply user32-rawinput-mouse/0012-dinput8-Use-raw-input-interface-for-dinput8-mouse-de.patch
(
printf '%s\n' '+ { "Rémi Bernon", "user32/tests: Add rawinput test for ClipCursor interactions.", 1 },';
printf '%s\n' '+ { "Rémi Bernon", "user32/tests: Add rawinput test for cross-thread interactions.", 1 },';
printf '%s\n' '+ { "Rémi Bernon", "user32/tests: Add rawinput test for cross-process interactions.", 1 },';
printf '%s\n' '+ { "Rémi Bernon", "server: Add send_hardware_message flags for rawinput translation.", 1 },';
printf '%s\n' '+ { "Rémi Bernon", "server: Broadcast rawinput message if request flag is SEND_HWMSG_RAWINPUT.", 1 },';
printf '%s\n' '+ { "Rémi Bernon", "user32: Add __wine_send_input flags to hint raw input translation.", 1 },';
printf '%s\n' '+ { "Rémi Bernon", "winex11.drv: Advertise XInput2 version 2.1 support.", 1 },';
printf '%s\n' '+ { "Rémi Bernon", "winex11.drv: Keep track of pointer and device button mappings.", 1 },';
printf '%s\n' '+ { "Rémi Bernon", "winex11.drv: Listen to RawMotion and RawButton* events in the desktop thread.", 1 },';
printf '%s\n' '+ { "Rémi Bernon", "user32: Implement GetRegisteredRawInputDevices.", 1 },';
printf '%s\n' '+ { "Rémi Bernon", "dinput8: Add support for dinput devices that use raw input interface.", 1 },';
printf '%s\n' '+ { "Rémi Bernon", "dinput8: Use raw input interface for dinput8 mouse device.", 1 },';
) >> "$patchlist"
fi
# Patchset ws2_32-WSACleanup
# |
# | This patchset fixes the following Wine bugs:
@ -3573,7 +3659,8 @@ fi
# | * Staging, advapi32-CreateRestrictedToken, advapi32-Token_Integrity_Level, kernel32-K32GetPerformanceInfo, ntdll-
# | Junction_Points, ntdll-ThreadTime, ntdll-Hide_Wine_Exports, ntdll-User_Shared_Data, winebuild-Fake_Dlls, ntdll-
# | RtlCreateUserThread, ntdll-SystemRoot_Symlink, server-Realtime_Priority, ntdll-Threading, server-Key_State, server-
# | PeekMessage, server-Signal_Thread, server-Shared_Memory, ws2_32-WSACleanup
# | PeekMessage, server-Signal_Thread, server-Shared_Memory, loader-KeyboardLayouts, winex11.drv-mouse-coorrds, user32
# | -rawinput-mouse, ws2_32-WSACleanup
# |
# | This patchset fixes the following Wine bugs:
# | * [#36692] Many multi-threaded applications have poor performance due to heavy use of synchronization primitives
@ -4159,23 +4246,6 @@ if test "$enable_libs_Debug_Channel" -eq 1; then
) >> "$patchlist"
fi
# Patchset loader-KeyboardLayouts
# |
# | This patchset fixes the following Wine bugs:
# | * [#47439] loader: Add Keyboard Layouts registry enteries.
# |
# | Modified files:
# | * dlls/user32/driver.c, dlls/user32/tests/input.c, loader/wine.inf.in
# |
if test "$enable_loader_KeyboardLayouts" -eq 1; then
patch_apply loader-KeyboardLayouts/0001-loader-Add-Keyboard-Layouts-registry-enteries.patch
patch_apply loader-KeyboardLayouts/0002-user32-Improve-GetKeyboardLayoutList.patch
(
printf '%s\n' '+ { "Alistair Leslie-Hughes", "loader: Add Keyboard Layouts registry enteries.", 1 },';
printf '%s\n' '+ { "Alistair Leslie-Hughes", "user32: Improve GetKeyboardLayoutList.", 1 },';
) >> "$patchlist"
fi
# Patchset mmsystem.dll16-MIDIHDR_Refcount
# |
# | This patchset fixes the following Wine bugs:
@ -5306,7 +5376,8 @@ fi
# | * Staging, advapi32-CreateRestrictedToken, advapi32-Token_Integrity_Level, kernel32-K32GetPerformanceInfo, ntdll-
# | Junction_Points, ntdll-ThreadTime, ntdll-Hide_Wine_Exports, ntdll-User_Shared_Data, winebuild-Fake_Dlls, ntdll-
# | RtlCreateUserThread, ntdll-SystemRoot_Symlink, server-Realtime_Priority, ntdll-Threading, server-Key_State, server-
# | PeekMessage, server-Signal_Thread, server-Shared_Memory, ws2_32-WSACleanup, eventfd_synchronization
# | PeekMessage, server-Signal_Thread, server-Shared_Memory, loader-KeyboardLayouts, winex11.drv-mouse-coorrds, user32
# | -rawinput-mouse, ws2_32-WSACleanup, eventfd_synchronization
# |
# | This patchset fixes the following Wine bugs:
# | * [#46967] GOG Galaxy doesn't run in virtual desktop.
@ -6115,71 +6186,10 @@ if test "$enable_user32_msgbox_Support_WM_COPY_mesg" -eq 1; then
) >> "$patchlist"
fi
# Patchset winex11.drv-mouse-coorrds
# |
# | This patchset fixes the following Wine bugs:
# | * [#46309] winex11.drv: Use root-relative coordinates for events, if possible.
# |
# | Modified files:
# | * dlls/winex11.drv/mouse.c
# |
if test "$enable_winex11_drv_mouse_coorrds" -eq 1; then
patch_apply winex11.drv-mouse-coorrds/0001-winex11.drv-mouse-Use-root-relative-coordinates-for-ev.patch
(
printf '%s\n' '+ { "Gabriel Ivăncescu", "winex11.drv/mouse: Use root-relative coordinates for events, if possible.", 1 },';
) >> "$patchlist"
fi
# Patchset user32-rawinput-mouse
# |
# | This patchset has the following (direct or indirect) dependencies:
# | * winex11.drv-mouse-coorrds
# |
# | This patchset fixes the following Wine bugs:
# | * [#42631] Mouse drift, jump or don't react to small slow movements in Unity-engine games and Fallout 4 (partly fixed in
# | Unity games, have walkaround in Fallout4 )
# | * [#42675] Overwatch: Phantom mouse input / view pulled up to ceiling
# |
# | Modified files:
# | * dlls/dinput/device_private.h, dlls/dinput/dinput_main.c, dlls/dinput/mouse.c, dlls/dinput8/tests/device.c,
# | dlls/user32/input.c, dlls/user32/rawinput.c, dlls/user32/tests/input.c, dlls/user32/user32.spec,
# | 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/event.c, dlls/winex11.drv/keyboard.c, dlls/winex11.drv/mouse.c,
# | dlls/winex11.drv/x11drv.h, dlls/winex11.drv/x11drv_main.c, include/winuser.h, server/protocol.def, server/queue.c
# |
if test "$enable_user32_rawinput_mouse" -eq 1; then
patch_apply user32-rawinput-mouse/0001-user32-tests-Add-rawinput-test-for-ClipCursor-intera.patch
patch_apply user32-rawinput-mouse/0002-user32-tests-Add-rawinput-test-for-cross-thread-inte.patch
patch_apply user32-rawinput-mouse/0003-user32-tests-Add-rawinput-test-for-cross-process-int.patch
patch_apply user32-rawinput-mouse/0004-server-Add-send_hardware_message-flags-for-rawinput-.patch
patch_apply user32-rawinput-mouse/0005-server-Broadcast-rawinput-message-if-request-flag-is.patch
patch_apply user32-rawinput-mouse/0006-user32-Add-__wine_send_input-flags-to-hint-raw-input.patch
patch_apply user32-rawinput-mouse/0007-winex11.drv-Advertise-XInput2-version-2.1-support.patch
patch_apply user32-rawinput-mouse/0008-winex11.drv-Keep-track-of-pointer-and-device-button-.patch
patch_apply user32-rawinput-mouse/0009-winex11.drv-Listen-to-RawMotion-and-RawButton-events.patch
patch_apply user32-rawinput-mouse/0010-user32-Implement-GetRegisteredRawInputDevices.patch
patch_apply user32-rawinput-mouse/0011-dinput8-Add-support-for-dinput-devices-that-use-raw-.patch
patch_apply user32-rawinput-mouse/0012-dinput8-Use-raw-input-interface-for-dinput8-mouse-de.patch
(
printf '%s\n' '+ { "Rémi Bernon", "user32/tests: Add rawinput test for ClipCursor interactions.", 1 },';
printf '%s\n' '+ { "Rémi Bernon", "user32/tests: Add rawinput test for cross-thread interactions.", 1 },';
printf '%s\n' '+ { "Rémi Bernon", "user32/tests: Add rawinput test for cross-process interactions.", 1 },';
printf '%s\n' '+ { "Rémi Bernon", "server: Add send_hardware_message flags for rawinput translation.", 1 },';
printf '%s\n' '+ { "Rémi Bernon", "server: Broadcast rawinput message if request flag is SEND_HWMSG_RAWINPUT.", 1 },';
printf '%s\n' '+ { "Rémi Bernon", "user32: Add __wine_send_input flags to hint raw input translation.", 1 },';
printf '%s\n' '+ { "Rémi Bernon", "winex11.drv: Advertise XInput2 version 2.1 support.", 1 },';
printf '%s\n' '+ { "Rémi Bernon", "winex11.drv: Keep track of pointer and device button mappings.", 1 },';
printf '%s\n' '+ { "Rémi Bernon", "winex11.drv: Listen to RawMotion and RawButton* events in the desktop thread.", 1 },';
printf '%s\n' '+ { "Rémi Bernon", "user32: Implement GetRegisteredRawInputDevices.", 1 },';
printf '%s\n' '+ { "Rémi Bernon", "dinput8: Add support for dinput devices that use raw input interface.", 1 },';
printf '%s\n' '+ { "Rémi Bernon", "dinput8: Use raw input interface for dinput8 mouse device.", 1 },';
) >> "$patchlist"
fi
# Patchset user32-rawinput-nolegacy
# |
# | This patchset has the following (direct or indirect) dependencies:
# | * winex11.drv-mouse-coorrds, user32-rawinput-mouse
# | * loader-KeyboardLayouts, winex11.drv-mouse-coorrds, user32-rawinput-mouse
# |
# | Modified files:
# | * dlls/dinput/dinput_main.c, dlls/dinput8/tests/device.c, dlls/user32/rawinput.c, server/queue.c
@ -6202,7 +6212,7 @@ fi
# Patchset user32-rawinput-hid
# |
# | This patchset has the following (direct or indirect) dependencies:
# | * winex11.drv-mouse-coorrds, user32-rawinput-mouse, user32-rawinput-nolegacy
# | * loader-KeyboardLayouts, winex11.drv-mouse-coorrds, user32-rawinput-mouse, user32-rawinput-nolegacy
# |
# | Modified files:
# | * dlls/hidclass.sys/device.c, dlls/hidclass.sys/hid.h, dlls/hidclass.sys/pnp.c, dlls/user32/message.c,
@ -6226,7 +6236,7 @@ fi
# Patchset user32-rawinput-mouse-experimental
# |
# | This patchset has the following (direct or indirect) dependencies:
# | * winex11.drv-mouse-coorrds, user32-rawinput-mouse, user32-rawinput-nolegacy
# | * loader-KeyboardLayouts, winex11.drv-mouse-coorrds, user32-rawinput-mouse, user32-rawinput-nolegacy
# |
# | This patchset fixes the following Wine bugs:
# | * [#45882] - Raw Input should use untransformed mouse values (affects Overwatch, several Source games).
@ -7225,8 +7235,8 @@ fi
# | * Staging, advapi32-CreateRestrictedToken, advapi32-Token_Integrity_Level, kernel32-K32GetPerformanceInfo, ntdll-
# | Junction_Points, ntdll-ThreadTime, ntdll-Hide_Wine_Exports, ntdll-User_Shared_Data, winebuild-Fake_Dlls, ntdll-
# | RtlCreateUserThread, ntdll-SystemRoot_Symlink, server-Realtime_Priority, ntdll-Threading, server-Key_State, server-
# | PeekMessage, server-Signal_Thread, server-Shared_Memory, ws2_32-WSACleanup, eventfd_synchronization, server-
# | Desktop_Refcount
# | PeekMessage, server-Signal_Thread, server-Shared_Memory, loader-KeyboardLayouts, winex11.drv-mouse-coorrds, user32
# | -rawinput-mouse, ws2_32-WSACleanup, eventfd_synchronization, server-Desktop_Refcount
# |
# | Modified files:
# | * dlls/ws2_32/socket.c, dlls/ws2_32/tests/sock.c, include/winsock.h, server/protocol.def, server/sock.c

View File

@ -1,7 +1,7 @@
From d4dd0d48cec74bd2185eae5a6020c026040c1319 Mon Sep 17 00:00:00 2001
From 683426b80996fab19231f272ce60184f0688f806 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20Bernon?= <rbernon@codeweavers.com>
Date: Mon, 26 Aug 2019 16:06:58 +0200
Subject: [PATCH 10/12] user32: Implement GetRegisteredRawInputDevices.
Subject: [PATCH] user32: Implement GetRegisteredRawInputDevices.
---
dlls/dinput8/tests/device.c | 13 ---------
@ -11,10 +11,10 @@ Subject: [PATCH 10/12] user32: Implement GetRegisteredRawInputDevices.
4 files changed, 83 insertions(+), 15 deletions(-)
diff --git a/dlls/dinput8/tests/device.c b/dlls/dinput8/tests/device.c
index bec2a6b863c..45fc2889066 100644
index f3e7b542355..72a59878d8a 100644
--- a/dlls/dinput8/tests/device.c
+++ b/dlls/dinput8/tests/device.c
@@ -652,7 +652,6 @@ static void test_mouse_keyboard(void)
@@ -602,7 +602,6 @@ static void test_mouse_keyboard(void)
raw_devices_count = ARRAY_SIZE(raw_devices);
GetRegisteredRawInputDevices(NULL, &raw_devices_count, sizeof(RAWINPUTDEVICE));
@ -22,7 +22,7 @@ index bec2a6b863c..45fc2889066 100644
ok(raw_devices_count == 0, "Unexpected raw devices registered: %d\n", raw_devices_count);
hr = IDirectInputDevice8_Acquire(di_keyboard);
@@ -674,7 +673,6 @@ static void test_mouse_keyboard(void)
@@ -624,7 +623,6 @@ static void test_mouse_keyboard(void)
ok(SUCCEEDED(hr), "IDirectInputDevice8_Acquire failed: %08x\n", hr);
raw_devices_count = ARRAY_SIZE(raw_devices);
GetRegisteredRawInputDevices(NULL, &raw_devices_count, sizeof(RAWINPUTDEVICE));
@ -30,7 +30,7 @@ index bec2a6b863c..45fc2889066 100644
ok(raw_devices_count == 0, "Unexpected raw devices registered: %d\n", raw_devices_count);
if (raw_devices[0].hwndTarget != NULL)
@@ -712,7 +710,6 @@ static void test_mouse_keyboard(void)
@@ -662,7 +660,6 @@ static void test_mouse_keyboard(void)
ok(SUCCEEDED(hr), "IDirectInputDevice8_Acquire failed: %08x\n", hr);
raw_devices_count = ARRAY_SIZE(raw_devices);
GetRegisteredRawInputDevices(NULL, &raw_devices_count, sizeof(RAWINPUTDEVICE));
@ -38,7 +38,7 @@ index bec2a6b863c..45fc2889066 100644
ok(raw_devices_count == 0, "Unexpected raw devices registered: %d\n", raw_devices_count);
/* expect dinput8 to take over any activated raw input devices */
@@ -739,26 +736,18 @@ static void test_mouse_keyboard(void)
@@ -689,26 +686,18 @@ static void test_mouse_keyboard(void)
raw_devices_count = ARRAY_SIZE(raw_devices);
memset(raw_devices, 0, sizeof(raw_devices));
hr = GetRegisteredRawInputDevices(raw_devices, &raw_devices_count, sizeof(RAWINPUTDEVICE));
@ -65,7 +65,7 @@ index bec2a6b863c..45fc2889066 100644
ok(raw_devices[2].usUsage == 6, "Unexpected raw device usage: %x\n", raw_devices[1].usUsage);
todo_wine
ok(raw_devices[2].dwFlags == RIDEV_INPUTSINK, "Unexpected raw device flags: %x\n", raw_devices[1].dwFlags);
@@ -777,12 +766,10 @@ static void test_mouse_keyboard(void)
@@ -727,12 +716,10 @@ static void test_mouse_keyboard(void)
hr = GetRegisteredRawInputDevices(raw_devices, &raw_devices_count, sizeof(RAWINPUTDEVICE));
todo_wine
ok(hr == 1, "GetRegisteredRawInputDevices returned %d, raw_devices_count: %d\n", hr, raw_devices_count);
@ -151,10 +151,10 @@ index 85ff0c5e809..3792360b057 100644
diff --git a/server/protocol.def b/server/protocol.def
index 9f9f9197134..d37dceba40c 100644
index d74400f0eec..06620b4f8d4 100644
--- a/server/protocol.def
+++ b/server/protocol.def
@@ -3986,6 +3986,12 @@ struct handle_info
@@ -3879,6 +3879,12 @@ struct handle_info
VARARG(devices,rawinput_devices);
@END
@ -168,12 +168,12 @@ index 9f9f9197134..d37dceba40c 100644
/* Retrieve the suspended context of a thread */
@REQ(get_suspend_context)
diff --git a/server/queue.c b/server/queue.c
index 2bdd099d1bb..8a1bbfff5aa 100644
index 05c9481f8a9..6e5022b2311 100644
--- a/server/queue.c
+++ b/server/queue.c
@@ -3382,3 +3382,27 @@ DECL_HANDLER(esync_msgwait)
if (current->process->idle_event && !(queue->wake_mask & QS_SMRESULT))
set_event( current->process->idle_event );
@@ -3193,3 +3193,27 @@ DECL_HANDLER(update_rawinput_devices)
e = find_rawinput_device( 1, 6 );
current->process->rawinput_kbd = e ? &e->device : NULL;
}
+
+DECL_HANDLER(get_rawinput_devices)
@ -200,5 +200,5 @@ index 2bdd099d1bb..8a1bbfff5aa 100644
+ set_reply_data_ptr( devices, device_count * sizeof (*devices) );
+}
--
2.24.1
2.26.0

View File

@ -1,3 +1,4 @@
Fixes: [42631] Mouse drift, jump or don't react to small slow movements in Unity-engine games and Fallout 4 (partly fixed in Unity games, have walkaround in Fallout4 )
Fixes: [42675] Overwatch: Phantom mouse input / view pulled up to ceiling
Depends: winex11.drv-mouse-coorrds
Depends: loader-KeyboardLayouts