Okay, I think we may have solved this bug with what is in master yesterday. I spent some time looking at the Qt plugin source code in qtbase for Windows. It uses a ToUnicode() Windows call in their code and comments there indicate this call returns the wrong key for situations when Ctrl is used on some keyboard layouts, which explains RbnJrg's broken Ctrl+Shift+6 bug result.
Since Qt's internal code is broken here (according to their own comments) as well as various attempts at failed fixes according to github, the only correct way I can see is to use the MapVirtualKeyW(vk, MAPVK_VK_TO_CHAR) approach and use Case A (which is what is in master).
So unless there are issues with other platforms, I will consider this one fixed.
Thanks for all who tested and helped!
Last edited by KevinH; 09-17-2021 at 09:57 AM.
|