Aric Stewart <a...@codeweavers.com> writes: > @@ -443,6 +473,28 @@ static InputContextData* get_imc_data(HIMC hIMC) > return data; > } > > +static BOOL ensure_default_imc(IMMThreadData** thread_data) > +{ > + if (!(*thread_data)->defaultContext) > + { > + HIMC defaultContext; > + LeaveCriticalSection(&threaddata_cs); > + defaultContext = ImmCreateContext(); > + *thread_data = IMM_GetThreadData(0); > + if (!(*thread_data)) > + { > + IMM_DestroyContext(defaultContext); > + return FALSE; > + } > + > + if ((*thread_data)->defaultContext) /* someone beat us */ > + IMM_DestroyContext(defaultContext); > + else > + (*thread_data)->defaultContext = defaultContext; > + } > + return TRUE; > +}
That's fairly inelegant, try to find a better way. -- Alexandre Julliard julli...@winehq.org