On Thu May 11 09:30:56 2023 +0000, Byeongsik Jeon wrote:
Sorry about that. I analysed the test results incorrectly. While testing ImmNotifyIME: CPS_COMPLETE, I was not able to see IMN_SETOPENSTATUS in the application windproc, so I also looked at the default ime window and ime ui window. I made the silly mistake of analysing WM_IME_NOTIFY:wparam=0x11 as IMN_SETOPENSTATUS | IMN_CHANGECANDIATE. It looks like ImmSetOpenStatus is not called on CPS_COMPLETE, CPS_CANCEL. I would be grateful if you could confirm. I tested it on Japanese and Korean MS IME.
I think you're right, I probably got confused in my tests. I will try to write tests for these specific sequences. Anyway, I think it will be tricky to implement as XIM doesn't let us change the IME strings.
I also would like to finish moving all the IME functions to imm32, before trying to fix this. If we need some specific callbacks from imm32 to the drivers to help, that could probably be done using the same win32u interface jacek suggested to use.