Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=56661
Diablo II (at least with Project Diablo 2 mod) regressed with commit 8b3944e1341baaf693927c8b758851d2dbba725a ("ntdll: Only allocate debug info in critical sections with RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO."). I debugged that and found that a mod's DLL checks for the debug info presence specifically, and that works on modern Windows only because the game has compat shim enabled through Windows Compatibility Database ("AllocDebugInfoForCritSections").
I know that depending the behaviour on the Win version set in winecfg is not much favoured, but we have a couple of examples of that (e. g., kernelbase/file.c: CreateFileA()). So since this is a core part which changed behaviour on Windows but received a compatibility shim we may do so in this case.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5635
This MR improves the handling of numpad keys for drivers using KBDTABLES (only the Wayland driver at this point). It achieves this by:
1. Allowing drivers to send only the scancode in keyboard events, with win32u performing the scan->vkey mapping internally. A nice side effect of this change is that it fixes a few user32 input test TODOs.
2. Enhancing wineserver to read extended KBD vkey attributes and perform numpad key mapping depending on modifier state.
3. Providing default VK_NUMPAD* -> WCHAR mappings in win32u.
--
v3: winewayland.drv: Populate vkey to wchar entry for VK_DECIMAL.
server: Send numpad virtual keys if NumLock is active.
win32u: Store the full KBD vkey information in kbd_tables_init_vsc2vk.
win32u: Allow drivers to send only the scan code for keyboard events.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5601