On Tue Apr 4 20:42:52 2023 +0000, Byeongsik Jeon wrote:
> On a recent review, I realized that I hadn't analyzed this issue
> properly, and the problem had already been fixed by another commit.
> https://gitlab.winehq.org/wine/wine/-/commit/f6ddd4ca86672fe2739ea7d1701511…
> The cause of the problem was that the wrong parameter value(new_context)
> was being passed to ImeSelect(). Because of this, ImeSelect() didn't
> work properly and kept the fdwConversion value of the wrong value (fdwConversionCaps).
> For example, in ImeSelect(), fdwConversion is initialized in the
> following routine:
> ```
> if ( !( lpIMC->fdwInit & INIT_CONVERSION ) )
> {
> lpIMC->fdwConversion = IME_CMODE_NATIVE;
> lpIMC->fdwInit |= INIT_CONVERSION;
> }
> ```
> If the IME follows this initialization routine, the values of
> fdwConversion, fdwSentence set in ime_select_ime() will be ignored.
I guess maybe we'd have to clear the `fdwInit` flag before calling `ImeSelect`? As far as I could see in the tests, the `fdwConversion` and `fdwSentence` fields aren't modified by imm32 and left for the IME to reset or not. It caused some spurious failures before 7d03937abe899db810c983779f2566b94d787e8a with the fields keeping the values from the default (MS) IME.
The tests also suggest that the values are cached between different IME selections, unlike what Wine is currently doing.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2520#note_28984
This fixes a bug when the session topology contains an invalid
source, which makes the session thread to hang and stop executing
commands.
--
v2: mf: Handle errors when subscribing to events.
mf/tests: Test media session error handling.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2496
On Tue Mar 28 10:35:26 2023 +0000, Byeongsik Jeon wrote:
> Saenaru. This is not an MS IME, but a DDK-based open source Korean IME.
> I think you can check this in the Wine test code.
On a recent review, I realized that I hadn't analyzed this issue properly, and the problem had already been fixed by another commit.
https://gitlab.winehq.org/wine/wine/-/commit/f6ddd4ca86672fe2739ea7d1701511…
The cause of the problem was that the wrong parameter value(new_context) was being passed to ImeSelect(). Because of this, ImeSelect() didn't work properly and kept the fdwConversion value of the wrong value (fdwConversionCaps).
For example, in ImeSelect(), fdwConversion is initialized in the following routine:
```
if ( !( lpIMC->fdwInit & INIT_CONVERSION ) )
{
lpIMC->fdwConversion = IME_CMODE_NATIVE;
lpIMC->fdwInit |= INIT_CONVERSION;
}
```
If the IME follows this initialization routine, the values of fdwConversion, fdwSentence set in ime_select_ime() will be ignored.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2520#note_28981