[PATCH v2] dlls: Flush CompositionString after X11DRV_XIMLookupChars.

Bernhard Kölbl besentv at gmail.com
Sat Mar 19 12:32:36 CDT 2022


Hi,

I'd suggest to split the patch into two, since you are changing 2 different
components at once.
Also maybe you could write a small test for the riched part.

Bernhard

Alex Kwak <take-me-home at kakao.com> schrieb am Sa., 19. März 2022, 18:14:

> Hello, Akihiro
> Thanks for reviewing.
>
> just now, I wrote a bug with logs.
> ( https://bugs.winehq.org/show_bug.cgi?id=52700 )
>
> This is a problem that occurs in almost all Korean input method.
> ( except root style IME )
>
> Best Regards,
> Alex
>
>
> 22. 3. 19. 23:27에 Akihiro Sagawa 이(가) 쓴 글:
> > On Thu, 17 Mar 2022 07:48:51 +0900, Alex Kwak wrote:
> >> There is no flushing after X11DRV_XIMLookupChars on wine11xdrv. for
> >> this reason, the characters of the GUI are not updated.
> > [...]
> >> diff --git a/dlls/winex11.drv/xim.c b/dlls/winex11.drv/xim.c
> >> index 3994c2106cc..66c56c177ac 100644
> >> --- a/dlls/winex11.drv/xim.c
> >> +++ b/dlls/winex11.drv/xim.c
> >> @@ -117,6 +117,16 @@ void X11DRV_XIMLookupChars( const char *str, DWORD
> count )
> >>
> >>       IME_SetResultString(wcOutput, dwOutput);
> >>       HeapFree(GetProcessHeap(), 0, wcOutput);
> >> +
> >> +    /*
> >> +     * After then if `CompositionString` is remaining, flushing it.
> >> +     * i.e., Korean
> >> +     */
> >> +    if (CompositionString)
> >> +    {
> >> +        IME_SetCompositionString(SCS_SETSTR, CompositionString,
> >> +                                 dwCompStringLength, NULL, 0);
> >> +    }
> >>   }
> >>
> >>   static BOOL XIMPreEditStateNotifyCallback(XIC xic, XPointer p,
> XPointer data)
> > Hello Alex,
> > How about filing a bug regarding this issue and attaching
> > WINEDEBUG=xim,imm traces?
> > What XIM server or Input Method does suffer from the issue?
> >
> >  From my point of view:
> >   - If the XIM server supports XIMPreeditCallbacks,
> >     CompositionString should be updated via XIMPreEditDrawCallback.
> >   - If the XIM server doesn't support XIMPreeditCallbacks,
> >     CompositionString is always NULL. So, your additional code doesn't
> > make sense.
> >
> > At least, I can't reproduce the first issue with fcitx-mozc, a Japanese
> > input method...
> >
> > Akihiro Sagawa
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20220319/a1d720f1/attachment.htm>


More information about the wine-devel mailing list