Commit Graph

101 Commits

Author SHA1 Message Date
Zhiyi Zhang 9b2f59cb94 user32: Use get_primary_monitor_rect() helper.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-18 21:25:00 +02:00
Rémi Bernon 50ca64fcdf user32: Duplicate klid to HKL high word in LoadKeyboardLayoutW.
When high word is 0, and unless it has an explicit layout id.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-17 20:37:25 +02:00
Rémi Bernon 3e2b225428 user32: Read "Layout Id" from registry in LoadKeyboardLayoutW.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-07 22:22:49 +02:00
Rémi Bernon bda517c085 user32: Implement KLF_ACTIVATE flag in LoadKeyboardLayoutW.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-07 22:22:49 +02:00
Rémi Bernon 4bec69b104 user32: Move (Un)LoadKeyboardLayoutW from winex11.drv to user32.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-07 22:22:49 +02:00
Rémi Bernon 30460460e5 user32: Cache current keyboard layout name.
To avoid iterating the registry every time GetKeyboardLayoutNameW is
called.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-07 22:22:49 +02:00
Rémi Bernon e2cc121327 user32: Adjust ToUnicodeEx control code translation.
To match VkKeyScanW and pass corresponding tests.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-06 20:00:53 +02:00
Rémi Bernon 512112ebd5 user32: Set keyboard layout preload key on init.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-06 20:00:42 +02:00
Rémi Bernon 8ec1206ba0 user32: Read "Layout Id" from registry in GetKeyboardLayoutNameW.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-06 19:50:58 +02:00
Rémi Bernon c4e6d16271 user32: Factor GetKeyboardLayoutNameW implementations.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-06 19:50:40 +02:00
Rémi Bernon e2aa30f21d user32: Factor GetKeyboardLayout and remove driver call.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-05 21:57:53 +02:00
Rémi Bernon da9fc41814 user32: Factor ActivateKeyboardLayout previous layout logic.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-05 21:57:04 +02:00
Rémi Bernon 179c57603a user32: Add current keyboard layout to thread data.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-05 21:56:23 +02:00
Rémi Bernon 92cbeed9d7 user32: Add a default GetKeyboardLayout implementation.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-03 21:08:31 +02:00
Rémi Bernon f044f401f7 user32: Factor unsupported cases into ActivateKeyboardLayout.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-03 21:08:23 +02:00
Rémi Bernon 66a46120a0 user32: Add a default ActivateKeyboardLayout implementation.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-03 21:08:13 +02:00
Rémi Bernon 80985b7eec user32: Read "Layout Id" from registry in GetKeyboardLayoutList.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-30 22:59:49 +02:00
Rémi Bernon 66c3181444 user32: Move GetKeyboardLayoutList from nulldrv.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-30 22:59:49 +02:00
Rémi Bernon d1c2fadac4 user32: Add a default VkKeyScanEx implementation.
This is basically the reverse of ToUnicodeEx.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-30 22:59:49 +02:00
Rémi Bernon 4cf6023c62 user32: Add a default GetKeyNameTextW implementation.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-30 22:59:49 +02:00
Rémi Bernon 1feb05485b user32: Add a default MapVirtualKeyEx implementation.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-30 22:59:49 +02:00
Rémi Bernon fde6c6119d user32: Translate missing vkeys in ToUnicodeEx.
As shown by user32 input and msg tests.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-29 10:49:35 +02:00
Rémi Bernon 37db87eff6 user32: Don't translate control codes when alt is pressed.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-29 10:49:31 +02:00
Rémi Bernon 95d8f40fdf user32: Move ToUnicodeEx from wineandroid.drv to user32.
As a fallback implementation, using English keyboard layout.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-29 10:49:25 +02:00
Rémi Bernon 123c17aa92 user32: Add RAWINPUT parameter to __wine_send_input.
And send_hardware_message.

This makes it possible to use __wine_send_input to send extended input
data, such as HID device notifications and WM_INPUT messages carrying
HID reports.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50506
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-15 10:37:52 +02:00
Rémi Bernon 092c7a09a5 user32: Implement SendInput INPUT_HARDWARE check.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50506
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-14 21:23:06 +02:00
Rémi Bernon 2f8da3c12a user32/tests: Add more SendInput tests.
Validating that SendInput with INPUT_HARDWARE type should be no-op.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50506
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-14 21:23:02 +02:00
Rémi Bernon 6444e4fade server: Remove tid from set_key_state request.
As it is always set to GetCurrentThreadId().

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=26269
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=27238
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=31899
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=35907
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45385
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-02 22:51:50 +02:00
Rémi Bernon 626870abe2 server: Remove tid from get_key_state request.
And replace it with an async param if we want the global async keystate.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=26269
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=27238
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=31899
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=35907
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45385
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-02 22:51:21 +02:00
Arkadiusz Hiler f7edc32818 user32: Implement GetMouseMovePointsEx().
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=36873
Signed-off-by: Arkadiusz Hiler <ahiler@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-13 22:37:16 +02:00
Alexandre Julliard 9cc9236556 user32: Build with msvcrt.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-21 15:15:38 +02:00
Arkadiusz Hiler 8091922d9a user32: Move *RegisterDeviceNotification*() to input.c.
Signed-off-by: Arkadiusz Hiler <arek@hiler.eu>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-27 21:09:03 +02:00
Markus Engel d9855df17f user32: Force undefined bits in GetKeyState() and GetKeyboardState() to zero.
Only the highest and lowest bits in the return values of these functions
have a meaning, the others are undefined. While the other bits are
always cleared in Windows, wine stores information there. Some programs
expect these undefined bits to be zero, though, so make sure they are
not set.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=30814
Signed-off-by: Markus Engel <markus_wine@familie-engel.online>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-21 21:01:29 +02:00
Alexandre Julliard 5d5b6a1f35 user32: Use the standard Interlocked* functions.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-02 15:10:10 +02:00
Huw Davies ae7531f673 user32: Remove unused GetAsyncKeyState() driver entry.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-06 16:04:03 +01:00
Alexandre Julliard c33615dcf3 user32: Map mouse events to physical coordinates in SendInput.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-27 14:25:17 +02:00
Alexandre Julliard ac3e887e5d user32: Support the MOUSEEVENTF_VIRTUALDESK flag in SendInput().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-27 14:25:17 +02:00
Alexandre Julliard 910f3ed4da user32: Scale coordinates in Get/SetCursorPos() based on DPI awareness.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-27 14:19:29 +02:00
Zebediah Figura 6f3fb8c3f2 user32: Move rawinput functions to rawinput.c.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-21 10:27:47 +02:00
Akihiro Sagawa c6d28c9399 user32: Support Japanese keyboard type in GetKeyboardType.
Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-17 16:51:02 +02:00
Alexandre Julliard ae7acbfe4b user32: Remove FIXMEs from physical<->logical mapping functions.
Also group them with the other DPI functions.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-13 19:03:27 +02:00
Józef Kucia 9a95f10249 user32: Add stub for EnableMouseInPointer().
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-11 16:23:06 +02:00
Sebastian Lackner 059d5ece23 user32: Globally invalidate key state on changes in other threads.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-12-18 16:20:58 +01:00
Austin English 2e9ca4626e user32: Add GetPhysicalCursorPos/SetPhysicalCursorPos stubs.
Signed-off-by: Austin English <austinenglish@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-17 21:57:13 +02:00
Huw Davies b7c5ff05a7 user32: Implement OemKeyScan().
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-22 22:29:57 +09:00
Christopher Thielen 9bb87cc71c user32: A window may be notified with WM_CAPTURECHANGED about itself if SetCapture() is called twice.
Signed-off-by: Christopher Thielen <cthielen@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-02 22:24:11 +09:00
Bruno Jesus e0ba6d8fdb user32: Set the expected errors in GetRawInputDeviceList. 2015-05-27 13:54:37 +09:00
Dmitry Timoshkov c0e876cb9e server: GetQueueStatus should clear only checked queue changed bits. 2015-04-21 17:32:53 +09:00
Sebastian Lackner d3be42ab96 user32: Invalidate key state cache globally after running LL hooks. 2015-04-07 15:14:04 +09:00
Sebastian Lackner 325c061bbd user32: Move key state cache into a separate struct. 2015-04-07 15:14:02 +09:00