[PATCH 6/7] dinput8: Use raw input interface for dinput8 keyboard device

Rémi Bernon rbernon at codeweavers.com
Tue Aug 27 08:17:34 CDT 2019


On 8/27/19 3:15 PM, Akihiro Sagawa wrote:
> 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
> 
Thanks, I guess I missed the field.
-- 
Rémi Bernon <rbernon at codeweavers.com>



More information about the wine-devel mailing list