From: "Rémi Bernon" Subject: [PATCH 3/7] server: Add process argument to find_rawinput_device. Message-Id: <20190919120721.31604-4-rbernon@codeweavers.com> Date: Thu, 19 Sep 2019 14:07:17 +0200 In-Reply-To: <20190919120721.31604-1-rbernon@codeweavers.com> References: <20190919120721.31604-1-rbernon@codeweavers.com> We need to be able to iterate all registered rawinput devices for foreign processes, not only the current one. Signed-off-by: Rémi Bernon --- server/queue.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/server/queue.c b/server/queue.c index d883811449e..22abdaed34a 100644 --- a/server/queue.c +++ b/server/queue.c @@ -1445,11 +1445,11 @@ static user_handle_t find_hardware_message_window( struct desktop *desktop, stru return win; } -static struct rawinput_device_entry *find_rawinput_device( unsigned short usage_page, unsigned short usage ) +static struct rawinput_device_entry *find_rawinput_device( struct process *process, unsigned short usage_page, unsigned short usage ) { struct rawinput_device_entry *e; - LIST_FOR_EACH_ENTRY( e, ¤t->process->rawinput_devices, struct rawinput_device_entry, entry ) + LIST_FOR_EACH_ENTRY( e, &process->rawinput_devices, struct rawinput_device_entry, entry ) { if (e->device.usage_page != usage_page || e->device.usage != usage) continue; return e; @@ -1462,7 +1462,7 @@ static void update_rawinput_device(const struct rawinput_device *device) { struct rawinput_device_entry *e; - if (!(e = find_rawinput_device( device->usage_page, device->usage ))) + if (!(e = find_rawinput_device( current->process, device->usage_page, device->usage ))) { if (!(e = mem_alloc( sizeof(*e) ))) return; list_add_tail( ¤t->process->rawinput_devices, &e->entry ); @@ -3179,8 +3179,8 @@ DECL_HANDLER(update_rawinput_devices) update_rawinput_device(&devices[i]); } - e = find_rawinput_device( 1, 2 ); + e = find_rawinput_device( current->process, 1, 2 ); current->process->rawinput_mouse = e ? &e->device : NULL; - e = find_rawinput_device( 1, 6 ); + e = find_rawinput_device( current->process, 1, 6 ); current->process->rawinput_kbd = e ? &e->device : NULL; } -- 2.23.0