Rebase against 8cb68e43dec6e6bb32fcdf82e03a6d4263dd2354.

This commit is contained in:
Alistair Leslie-Hughes
2024-02-09 15:28:59 +11:00
parent 40467ae481
commit ff18b9b26e
7 changed files with 62 additions and 61 deletions

View File

@@ -1,4 +1,4 @@
From 72c71236311247110b966356e35501da26eeab52 Mon Sep 17 00:00:00 2001
From 84e2d01ee1a616724d5a61ca95db13b309b752f5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20Bernon?= <rbernon@codeweavers.com>
Date: Thu, 25 Mar 2021 14:26:35 +0100
Subject: [PATCH] user32: Support sending RIM_TYPEMOUSE through
@@ -10,36 +10,36 @@ Subject: [PATCH] user32: Support sending RIM_TYPEMOUSE through
2 files changed, 9 insertions(+)
diff --git a/dlls/win32u/message.c b/dlls/win32u/message.c
index b60afaad475..d622ae8aea8 100644
index 99bae5280f6..ff8f5bd6d87 100644
--- a/dlls/win32u/message.c
+++ b/dlls/win32u/message.c
@@ -3488,6 +3488,12 @@ NTSTATUS send_hardware_message( HWND hwnd, const INPUT *input, const RAWINPUT *r
req->input.hw.rawinput.type = rawinput->header.dwType;
@@ -3553,6 +3553,12 @@ NTSTATUS send_hardware_message( HWND hwnd, const INPUT *input, const RAWINPUT *r
case WM_INPUT_DEVICE_CHANGE:
switch (rawinput->header.dwType)
{
+ case RIM_TYPEMOUSE:
+ req->input.hw.rawinput.mouse.x = rawinput->data.mouse.lLastX;
+ req->input.hw.rawinput.mouse.y = rawinput->data.mouse.lLastY;
+ req->input.hw.rawinput.mouse.data = rawinput->data.mouse.ulRawButtons;
+ req->input.hw.mouse.x = rawinput->data.mouse.lLastX;
+ req->input.hw.mouse.y = rawinput->data.mouse.lLastY;
+ req->input.hw.mouse.data = rawinput->data.mouse.ulRawButtons;
+ req->input.hw.lparam = rawinput->data.mouse.usFlags;
+ break;
case RIM_TYPEHID:
req->input.hw.rawinput.hid.device = HandleToUlong( rawinput->header.hDevice );
req->input.hw.rawinput.hid.param = rawinput->header.wParam;
req->input.hw.wparam = rawinput->header.wParam;
req->input.hw.hid.device = HandleToUlong( rawinput->header.hDevice );
diff --git a/server/queue.c b/server/queue.c
index f62593b096a..cdd02d1534d 100644
index e234b5e8af9..1aedda1ca71 100644
--- a/server/queue.c
+++ b/server/queue.c
@@ -2132,6 +2132,9 @@ static void queue_custom_hardware_message( struct desktop *desktop, user_handle_
msg_data->size = sizeof(*msg_data) + report_size;
msg_data->rawinput = input->hw.rawinput;
@@ -2109,6 +2109,9 @@ static int queue_keyboard_message( struct desktop *desktop, user_handle_t win, c
raw_msg.rawinput.kbd.vkey = vkey;
raw_msg.rawinput.kbd.scan = input->kbd.scan;
+ if (input->hw.msg == WM_INPUT && input->hw.rawinput.type == RIM_TYPEMOUSE)
+ msg_data->flags = input->hw.lparam;
+
enum_processes( queue_rawinput_message, &raw_msg );
return;
release_object( foreground );
}
--
2.40.1
2.43.0

View File

@@ -1,3 +1,3 @@
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
Disabled: True