Updated user32-rawinput-nolegacy patchset

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48433
This commit is contained in:
Alistair Leslie-Hughes
2020-01-10 08:20:14 +11:00
parent 89af635b94
commit ccd0bc4ccd
3 changed files with 93 additions and 15 deletions

View File

@@ -1,7 +1,7 @@
From 56609fdaab139ec8718cf0c4963e6990c9b88003 Mon Sep 17 00:00:00 2001
From 9aca9116db8ca84eea5be6a67b748ff6fdde9a31 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20Bernon?= <rbernon@codeweavers.com>
Date: Thu, 19 Sep 2019 09:20:44 +0200
Subject: [PATCH 2/5] server: Allow extra data for hardware_msg_data message.
Subject: [PATCH] server: Allow extra data for hardware_msg_data message.
The RIM_TYPEHID messages will have to carry the variable length HID
report.
@@ -10,7 +10,7 @@ report.
1 file changed, 27 insertions(+), 16 deletions(-)
diff --git a/server/queue.c b/server/queue.c
index 3ed7e82a906..feff00e2b9f 100644
index 9dca519cad2..364c8e43485 100644
--- a/server/queue.c
+++ b/server/queue.c
@@ -398,13 +398,13 @@ static int assign_thread_input( struct thread *thread, struct thread_input *new_
@@ -41,16 +41,16 @@ index 3ed7e82a906..feff00e2b9f 100644
msg_data->info = info;
msg_data->source = source;
return msg;
@@ -430,7 +430,7 @@ static void set_cursor_pos( struct desktop *desktop, int x, int y )
if (current->process->rawinput_mouse &&
current->process->rawinput_mouse->flags & RIDEV_NOLEGACY) return;
@@ -448,7 +448,7 @@ static void set_cursor_pos( struct desktop *desktop, int x, int y )
return;
}
- if (!(msg = alloc_hardware_message( 0, source, get_tick_count() ))) return;
+ if (!(msg = alloc_hardware_message( 0, source, get_tick_count(), 0 ))) return;
msg->msg = WM_MOUSEMOVE;
msg->x = x;
@@ -1743,6 +1743,8 @@ struct rawinput_message
@@ -1756,6 +1756,8 @@ struct rawinput_message
struct hw_msg_source source;
unsigned int time;
struct hardware_msg_data data;
@@ -59,7 +59,7 @@ index 3ed7e82a906..feff00e2b9f 100644
};
static int queue_rawinput_message( struct process* process, void* user )
@@ -1752,6 +1754,7 @@ static int queue_rawinput_message( struct process* process, void* user )
@@ -1765,6 +1767,7 @@ static int queue_rawinput_message( struct process* process, void* user )
struct desktop *desktop = NULL;
struct thread *thread = NULL, *foreground = NULL;
struct message *msg;
@@ -67,7 +67,7 @@ index 3ed7e82a906..feff00e2b9f 100644
if (raw_msg->data.rawinput.type == RIM_TYPEMOUSE)
device = process->rawinput_mouse;
@@ -1774,14 +1777,18 @@ static int queue_rawinput_message( struct process* process, void* user )
@@ -1787,14 +1790,18 @@ static int queue_rawinput_message( struct process* process, void* user )
thread->process != foreground->process)
goto done;
@@ -88,7 +88,7 @@ index 3ed7e82a906..feff00e2b9f 100644
queue_hardware_message( desktop, msg, 0 );
@@ -1850,9 +1857,11 @@ static int queue_mouse_message( struct desktop *desktop, user_handle_t win, cons
@@ -1863,9 +1870,11 @@ static int queue_mouse_message( struct desktop *desktop, user_handle_t win, cons
if (req_flags & SEND_HWMSG_RAWINPUT)
{
@@ -103,7 +103,7 @@ index 3ed7e82a906..feff00e2b9f 100644
msg_data = &raw_msg.data;
msg_data->info = input->mouse.info;
@@ -1879,7 +1888,7 @@ static int queue_mouse_message( struct desktop *desktop, user_handle_t win, cons
@@ -1895,7 +1904,7 @@ static int queue_mouse_message( struct desktop *desktop, user_handle_t win, cons
if (!(flags & (1 << i))) continue;
flags &= ~(1 << i);
@@ -112,7 +112,7 @@ index 3ed7e82a906..feff00e2b9f 100644
msg_data = msg->data;
msg->win = get_user_full_handle( win );
@@ -1983,9 +1992,11 @@ static int queue_keyboard_message( struct desktop *desktop, user_handle_t win, c
@@ -1999,9 +2008,11 @@ static int queue_keyboard_message( struct desktop *desktop, user_handle_t win, c
if (req_flags & SEND_HWMSG_RAWINPUT)
{
@@ -127,7 +127,7 @@ index 3ed7e82a906..feff00e2b9f 100644
msg_data = &raw_msg.data;
msg_data->info = input->kbd.info;
@@ -2006,7 +2017,7 @@ static int queue_keyboard_message( struct desktop *desktop, user_handle_t win, c
@@ -2022,7 +2033,7 @@ static int queue_keyboard_message( struct desktop *desktop, user_handle_t win, c
if ((device = current->process->rawinput_kbd) && (device->flags & RIDEV_NOLEGACY))
return 0;
@@ -136,7 +136,7 @@ index 3ed7e82a906..feff00e2b9f 100644
msg_data = msg->data;
msg->win = get_user_full_handle( win );
@@ -2044,7 +2055,7 @@ static void queue_custom_hardware_message( struct desktop *desktop, user_handle_
@@ -2060,7 +2071,7 @@ static void queue_custom_hardware_message( struct desktop *desktop, user_handle_
struct hw_msg_source source = { IMDT_UNAVAILABLE, origin };
struct message *msg;
@@ -146,5 +146,5 @@ index 3ed7e82a906..feff00e2b9f 100644
msg->win = get_user_full_handle( win );
msg->msg = input->hw.msg;
--
2.24.1
2.17.1