Commit graph

323 commits

Author SHA1 Message Date
Rémi Bernon c1d5cae54b server: Use a shared_object_t for the dummy object.
The sequence lives in the object header, and the object is containing
the shm struct. The code was reading before the dummy_shm variable and
sometimes asserted that the sequence isn't initialized to zero.
2024-07-10 22:05:38 +02:00
Rémi Bernon 8ef766f114 win32u: Use the thread input shared memory for NtUserGetGUIThreadInfo. 2024-07-09 11:03:46 +02:00
Rémi Bernon ae5ede98c4 server: Add cursor handle and count to desktop shared memory. 2024-07-09 11:03:45 +02:00
Rémi Bernon 025e8cf4a0 server: Add a foreground flag to the thread input shared memory. 2024-07-09 11:03:45 +02:00
Rémi Bernon 90dcd2eaa6 win32u: Use the thread message queue shared memory in peek_message. 2024-07-08 23:09:04 +02:00
Rémi Bernon 6253e8c1ea server: Move caret window and rect to input shared memory. 2024-07-04 20:00:23 +02:00
Rémi Bernon 18d1af889e server: Move capture window to input shared memory.
As well as menu owner / menu size window handles.
2024-07-04 20:00:22 +02:00
Rémi Bernon be93b3ac92 server: Move focus window to input shared memory. 2024-07-04 20:00:22 +02:00
Rémi Bernon d42b502425 server: Move active window to input shared memory. 2024-07-04 20:00:22 +02:00
Rémi Bernon 953ee0714c server: Create a thread input shared mapping. 2024-07-04 20:00:22 +02:00
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