Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Strange RichEdit behavior in Burn with Turkish keyboard #5843
Steps to reproduce:
Active keyboard layout doesn't change (so it still should be TRQ on step 3 and 4).
Active keyboard layout changes to the previous one before TRQ was set (e.g. ENG).
The strange thing is this is only happening with Turkish layouts. Spanish, German, Russian, etc. does not show such behavior with Burn.
As I was able to investigate, the bug concluded in RichEdit control which is used in RtfLargeLicense theme. For some reason, the code inside RICHED20.DLL calls ActivateKeyboardLayout with different layout than currently selected. Previously GetKeyState with VK_SHIFT argument reports incorrect state for Shift key(s), so may be this triggers the bug (this doesn't happen with other layouts).
Just use newer MSFTEDIT_CLASS when you create RichEdit control, instead of older RICHEDIT_CLASS which is used currently. This change also implies changing the library to load - MSFTEDIT.DLL to replace RICHED20.DLL. This library exists on at least Windows XP SP3 (cannot check older SP) and later versions, and works perfectly as a drop-in replacement. Probably other issues could be fixed as well, as on Win10, this is of version 3.1 vs. version 8.5 of MSFTEDIT.