Commit graph

313 commits

Author SHA1 Message Date
Rémi Bernon 7f53ca70ba server: Move thread message queue bits to the shared mapping. 2024-07-01 09:40:04 +02:00
Rémi Bernon faa10ba7b5 server: Move thread message queue masks to the shared mapping. 2024-07-01 09:40:04 +02:00
Rémi Bernon 817cb4dd69 server: Remove now unnecessary active_hooks from replies. 2024-06-26 17:00:19 +02:00
Rémi Bernon 96c44adae8 win32u: Read the active hooks count from the shared memory. 2024-06-26 17:00:18 +02:00
Rémi Bernon ae5a02e808 server: Update the active hooks bitmaps when hooks are added / removed. 2024-06-26 17:00:18 +02:00
Rémi Bernon fd3de9005e server: Create a thread message queue shared mapping. 2024-06-26 17:00:18 +02:00
Rémi Bernon 2eeb4d5192 server: Move the desktop keystate to shared memory.
Based on a patch by Huw Davies.
2024-06-21 22:59:39 +02:00
Rémi Bernon d5b4458c8d server: Use separate functions to update the desktop and input keystates.
Based on a patch by Huw Davies.
2024-06-21 22:59:39 +02:00
Rémi Bernon 534aff4a63 server: Use a separate variable to determine the message on Alt release.
Based on a patch by Huw Davies.
2024-06-21 22:59:39 +02:00
Rémi Bernon 472ce7fd1d server: Get rid of the global cursor structure.
Based on a patch by Huw Davies.
2024-06-21 22:59:39 +02:00
Rémi Bernon 496f663157 server: Store the cursor clip rect in the shared data.
Based on a patch by Huw Davies.
2024-06-21 22:59:39 +02:00
Rémi Bernon 5488d99b3e server: Move the last cursor time to the desktop session object.
Based on a patch by Huw Davies.
2024-06-20 23:03:26 +02:00
Rémi Bernon 728049d6fa server: Move the cursor position to the desktop session object.
Based on a patch by Huw Davies.
2024-06-20 23:03:26 +02:00
Alexandros Frantzis 37e7038c5c server: Implement key auto-repeat request. 2024-06-07 21:00:10 +02:00
Alexandros Frantzis f95a44665f server: Check message target process for raw input device flags. 2024-06-07 21:00:10 +02:00
Alexandros Frantzis bf1da68aaa server: Pass desktop to get_first_global_hook. 2024-06-07 21:00:10 +02:00
Rémi Bernon 9ec501141e server: Avoid calling set_event from within msg_queue_add_queue. 2024-06-05 22:01:22 +02:00
Alexandros Frantzis d38d455c4b server: Set VK_PACKET async state in raw input legacy mode. 2024-05-31 19:05:58 +02:00
Alexandros Frantzis 69aad4aeca server: Don't send raw input events for unicode inputs. 2024-05-31 19:05:55 +02:00
Alexandros Frantzis d14a827b8c server: Apply modifier vkey transformations regardless of unicode flag. 2024-05-31 19:05:55 +02:00
Alexandros Frantzis d0e3286d96 server: Use right-left modifier vkeys for hooks. 2024-05-31 19:05:55 +02:00
Alexandros Frantzis 85f1ad64c4 server: Fix handling of KEYEVENTF_UNICODE inputs with a non-zero vkey. 2024-05-22 22:28:43 +02:00
Rémi Bernon d18bd43ba2 server: Pass the adjusted vkey to send_hook_ll_message. 2024-05-22 22:28:43 +02:00
Alexandros Frantzis 11ef7af768 server: Send numpad virtual keys if NumLock is active.
If the hardware keyboard event has KBD virtual key information, use it
to detect numpad key events and translate them to the appropriate
virtual keys depending on NumLock (and Shift) state.
2024-05-21 20:32:15 +02:00
Paul Gofman 0884b503c9 win32u: Update last message time in NtUserGetRawInputBuffer(). 2024-05-12 16:31:50 +02:00
Rémi Bernon b053e924e8 server: Process internal messages when checking queue status. 2024-03-21 22:19:58 +01:00
Rémi Bernon a84517418e server: Check for internal hardware messages before others. 2024-03-21 22:19:58 +01:00
Rémi Bernon 994021da99 server: Send WM_WINE_SETCURSOR message only when necessary. 2024-03-21 22:19:58 +01:00
Rémi Bernon 1604d8a202 server: Send WM_WINE_CLIPCURSOR message only when necessary. 2024-03-21 22:19:58 +01:00
Rémi Bernon 24ad74ee26 server: Send emulated mouse messages on primary pointer updates. 2024-03-06 19:20:09 +01:00
Rémi Bernon 40b65e28a7 server: Continuously send pointer update messages while it's down. 2024-03-06 19:20:09 +01:00
Rémi Bernon d8b8ac85eb server: Generate WM_POINTERENTER / WM_POINTERLEAVE messages. 2024-03-06 19:20:09 +01:00
Rémi Bernon 5b833c83be server: Stop waiting on LL-hooks for non-injected input. 2024-03-06 19:19:47 +01:00
Rémi Bernon 61d1c18957 server: Add support for sending and receiving WM_POINTER* messages. 2024-03-05 20:50:07 +01:00
Rémi Bernon bb5f0e122f win32u: Use a custom struct hid_input for NtUserSendHardwareInput. 2024-03-05 20:50:06 +01:00
Rémi Bernon 9591a36ee8 server: Dispatch rawinput messages using the rawinput process list. 2024-02-28 19:51:20 +01:00
Rémi Bernon c43b1ecbc3 server: Keep a list of processes that can receive rawinput messages. 2024-02-28 19:51:20 +01:00
Rémi Bernon 496eed7aaf server: Send hardware input to the visible input desktop.
When hwnd is specified, it is because it received a direct host input,
so switch the input desktop to match the one that is receiving it.

We don't validate that the sending thread uses the same desktop as the
target window: it may not even be the case for drivers with a separate
thread that listens on input events.
2024-02-28 19:51:20 +01:00
Rémi Bernon 1664ad7d50 server: Fix rawinput buffer sizes and alignment on WoW64. 2024-02-09 11:14:07 +01:00
Rémi Bernon 2eb8950392 server: Move rawinput message conversion from win32u.
Appending the entire RAWMOUSE / RAWKEYBOARD / RAWHID + report structs
after the hardware message data, instead of using a custom intermediate
structure.
2024-02-09 11:14:07 +01:00
Rémi Bernon c8bf3ba2da server: Stop using hardware_msg_data in rawinput_message. 2024-02-08 23:31:24 +01:00
Rémi Bernon f86cca3897 server: Stop using union rawinput in hw_input_t. 2024-02-08 23:31:24 +01:00
Rémi Bernon c62ca2e1aa server: Combine HID usage page and usage together. 2024-02-08 23:31:24 +01:00
Rémi Bernon d1789fbb40 server: Change desktop cursor only when inside the thread's windows.
Getting rid of the desktop cursor handle at the same time.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55961
2023-12-21 18:39:04 +01:00
Rémi Bernon 9dc80b13be server: Introduce a new get_desktop_cursor_thread_input helper.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55961
2023-12-21 18:39:04 +01:00
Brendan McGrath fa873804fb server: Always release internal hardware messages. 2023-12-21 18:38:59 +01:00
Rémi Bernon 2e90c01696 server: Ignore the capture window wrt desktop cursor changes.
This partially reverts commit c3dcf1e269.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55306
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=56046
2023-12-18 22:14:57 +01:00
Rémi Bernon bb496ea847 server: Always queue mouse messages delivered to another window.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55306
2023-12-18 22:14:57 +01:00
Rémi Bernon c3dcf1e269 server: Use the capture window as cursor window if it is set.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55306
2023-12-15 21:10:17 +01:00
Rémi Bernon 82642e34e1 server: Update the desktop cursor position / window on click.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55306
2023-12-15 21:10:17 +01:00