mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 18:15:11 +00:00
[WIN32K] Work around GCC builds inventing dead keys.
CORE-14948
This commit is contained in:
parent
7882b6cfe3
commit
3d3bd4e77e
1 changed files with 21 additions and 8 deletions
|
@ -467,18 +467,31 @@ IntToUnicodeEx(UINT wVirtKey,
|
|||
WCHAR wchFirst, wchSecond;
|
||||
TRACE("Previous dead char: %lc (%x)\n", wchDead, wchDead);
|
||||
|
||||
for (i = 0; pKbdTbl->pDeadKey[i].dwBoth; i++)
|
||||
if (pKbdTbl->pDeadKey)
|
||||
{
|
||||
wchFirst = pKbdTbl->pDeadKey[i].dwBoth >> 16;
|
||||
wchSecond = pKbdTbl->pDeadKey[i].dwBoth & 0xFFFF;
|
||||
if (wchFirst == wchDead && wchSecond == wchTranslatedChar)
|
||||
for (i = 0; pKbdTbl->pDeadKey[i].dwBoth; i++)
|
||||
{
|
||||
wchTranslatedChar = pKbdTbl->pDeadKey[i].wchComposed;
|
||||
wchDead = 0;
|
||||
bDead = FALSE;
|
||||
break;
|
||||
wchFirst = pKbdTbl->pDeadKey[i].dwBoth >> 16;
|
||||
wchSecond = pKbdTbl->pDeadKey[i].dwBoth & 0xFFFF;
|
||||
if (wchFirst == wchDead && wchSecond == wchTranslatedChar)
|
||||
{
|
||||
wchTranslatedChar = pKbdTbl->pDeadKey[i].wchComposed;
|
||||
wchDead = 0;
|
||||
bDead = FALSE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
#if defined(__GNUC__)
|
||||
if (wchDead == 0x8000)
|
||||
{
|
||||
ERR("GCC is inventing bits, ignoring fake dead key\n");
|
||||
wchDead = 0;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
TRACE("Final char: %lc (%x)\n", wchTranslatedChar, wchTranslatedChar);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue