[PATCH 6/7] dinput8: Use raw input interface for dinput8 keyboard device
Akihiro Sagawa
sagawa.aki at gmail.com
Tue Aug 27 08:15:38 CDT 2019
On Mon, 26 Aug 2019 16:07:00 +0200, RĂ©mi Bernon wrote:
> - switch (hook->vkCode)
> + switch (raw_input.data.keyboard.VKey)
> + {
> + /* R-Shift is special - it is an extended key with separate scan code */
> + case VK_RSHIFT: dik_code = DIK_RSHIFT; break;
> + case VK_PAUSE: dik_code = DIK_PAUSE; break;
> + case VK_NUMLOCK: dik_code = DIK_NUMLOCK; break;
> + case VK_SUBTRACT: dik_code = DIK_SUBTRACT; break;
> + default:
> + dik_code = map_dik_code(0, raw_input.data.keyboard.VKey, This->subtype);
You may want to use raw_input.data.keyboard.MakeCode here insetad of 0.
MapVirtualKey(MAPVK_VK_TO_VSC) is slightly broken (e.g. numeric keypad).
> + if (raw_input.data.keyboard.Flags & RI_KEY_E0) dik_code |= 0x80;
> + }
> + new_diks = (raw_input.data.keyboard.Flags & RI_KEY_BREAK) ? 0 : 0x80;
> + }
Akihiro Sagawa
More information about the wine-devel
mailing list