RĂ©mi Bernon rbernon@codeweavers.com wrote:
This patch is going in the wrong direction IMO, it won't allow implementing proper support for keyboard layouts and WM_INPUTLANGCHANGE using XKB keyboard groups. I sent a patch that implements ActivateKeyboardLayout() using XKB extension, and top of it WM_INPUTLANGCHANGE could be added: https://www.winehq.org/pipermail/wine-devel/2020-April/164161.html Unfortunately it was ignored.
How are you planning to implement support for keyboard layouts without support on the driver side?
I'm not sure to be honest, and as I indicated in my comment it's very possible indeed that this is not the right thing to do. Also, I don't yet see how this last patch is doing anything wrt the patch you sent. This is only removing LoadKeyboardLayout which doesn't do anything, currently or in your patch.
That patch doesn't implement LoadKeyboardLayout(), however it makes it possible.
My general feeling is that although it may be nice for the integration, it's going to be hard to implement keyboard layouts by bridging it directly with the host. Also I'm not sure having Windows applications messing with the keyboard layout is a great user improvement. (In the same way Windows apps messing with the display resolution isn't, in my opinion).
I have an application that on startup changes keyboard layout to Russian, so that an operator can readily start typing in the input fields. That's very helpful.
Also, it's not only about messing with layouts, it's about making applications detect available input locales and correctly handle input locale changes. For instance Winword highly depends on this.