https://bugs.winehq.org/show_bug.cgi?id=35361 Anastasius Focht <focht(a)gmx.net> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |focht(a)gmx.net Summary|Multiple Steam games crash |Multiple Steam games crash |on keypress with in-game |on keypress with in-game |community overlay enabled |community overlay enabled | |(cross-process/thread IME | |must be prohibited) --- Comment #33 from Anastasius Focht <focht(a)gmx.net> --- Hello folks, I think MSDN is pretty clear about these types of IME limitations: http://msdn.microsoft.com/en-us/library/dd317789%28VS.85%29.aspx --- quote --- Developing IME-Aware Multiple-thread Applications The IMM includes thread identification checking that determines if a calling thread is the creator of a specified input method context handle (HIMC type) or window handle (HWND type). If the thread is not the creator of the handle, the called IMM function fails and a subsequent call to GetLastError returns ERROR_INVALID_ACCESS. Note: The current IMM architecture does not provide a synchronization facility for access to IMM handles. To use thread identification checking, your applications must adhere to the following guidelines: * A thread should not access the input context created by another thread. * A thread should not associate an input context with a window created by another thread, and vice versa. --- quote --- This of course implies that cross-process IME is prohibited by design. Well, at least not without resorting to more or less intrusive process/dll injection techniques. Basically you need to check for violations of the requirements in IME APIs and fail subsequently: ImmAssociateContext ImmGetContext ... With that part fixed, the Steam in-game community overlay works (already tested). Regards -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.