Rémi Bernon (@rbernon) commented about dlls/win32u/input.c:
layout = NtUserGetKeyboardLayout( 0 ); id = HandleToUlong( layout ); - if (HIWORD( id ) == LOWORD( id )) id = LOWORD( id ); + if ((id & 0xf0000000) == 0xf0000000) + { + static unsigned int once; + + if (!once++) + FIXME("Variant layouts are not supported yet, returning the locale.\n"); + else + WARN("Variant layouts are not supported yet, returning the locale.\n"); + id = LOWORD(id); + } + else id = HIWORD(id);
Does this fix or help anything? Sure we can make layout ids more compatible but if it doesn't matter so much (and as far as I know it doesn't), we should work on the meaningful bits first. Especially if this is only temporary. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/10779#note_138311