Nikolay Sivov nsivov@codeweavers.com writes:
On 2/6/19 11:38 AM, Alexandre Julliard wrote:
Nikolay Sivov nsivov@codeweavers.com writes:
diff --git a/dlls/imm32/imm32.spec b/dlls/imm32/imm32.spec index 4197bb81e2..d9cdc794e9 100644 --- a/dlls/imm32/imm32.spec +++ b/dlls/imm32/imm32.spec @@ -117,3 +117,4 @@ @ stdcall __wine_get_ui_window(ptr) @ stdcall __wine_register_window(long) @ stdcall __wine_unregister_window(long) +@ stdcall __wine_activate_window(long)
It shouldn't be necessary to add a custom entry point for this, it should be part of the normal IME flow. Judging from the message traces, it should probably happen by sending WM_IME_SETCONTEXT on focus changes.
The problem is, it will have even larger impact if I start to mess with IME message handling which as I remember took some time to stabilize.
Right now I see traces of what I think you're suggesting in winex11 xim integration only, that calls ImmAssociateContext() to send this IME message. However initialization should happen regardless of windowing driver we use, so imm32 has to respond to input focus changes.
So to be clear, you're talking about making general improvements in this area first?
It may require some code to be moved to user32, but it could also be left to the windowing driver, if that's easier. If it works with winex11 but not with the other drivers they can be fixed.