IME problems about TSF and IMM

Hello everyone.
I didn’t know the difference between IME, TSF and IMM.
now, I conjecture their relationship is :
there are two ways to implement IME on windows, that is, TSF and IMM.

IMM will be discard in future, so maybe SDL implements IME by TSF on windowsXP,
however, by default, our clients are using an IME by IMM , and TSF is disable and not installed on our system,
so clients can’t see the Composition Window and Candidates Window on winxp in SDL program.
they would not install something about TSF, and even don’t know how to enable it.
In a word ,we have to use IMM, but there is no support in SDL.

To fix this problems, I have tried to fix source code of SDL , let IME_HandleMessage return SDL_FALSE,
and use ImmSetCompositionWindow and ImmSetCandidateWindow to implement the SetTextInputRect, it works well except in fullscreen .
Then I read some article about ime, I don’t found there is any way to solve it in fullscreen with IMM.

What should I do? Can you help me? Thanks.

I think it would be helpful if SDL could provide some interfaces for getting candidates or other necessary information so we can render UI ourselves.

2015-04-26 7:28 GMT-03:00, Dennis :

I think it would be helpful if SDL could provide some interfaces for getting
candidates or other necessary information so we can render UI ourselves.

I wanted this too, but the problem is that I’m not sure if SDL has any
control over that, and offering the candidate list may backfire if it
turns out you can’t hide the system one on some platforms (as then you
will have programs that will blindly show both).

This is definitely a platform specific feature, as I’m not aware that
you can do anything like that on OS X at least.

  • JiangOn Sun, Apr 26, 2015 at 5:46 PM, Sik the hedgehog <sik.the.hedgehog at gmail.com> wrote:

2015-04-26 7:28 GMT-03:00, Dennis :

I think it would be helpful if SDL could provide some interfaces for getting
candidates or other necessary information so we can render UI ourselves.

I wanted this too, but the problem is that I’m not sure if SDL has any
control over that, and offering the candidate list may backfire if it
turns out you can’t hide the system one on some platforms (as then you
will have programs that will blindly show both).

This is definitely a platform specific feature, as I’m not aware that
you can do anything like that on OS X at least

You are right, I was wrong.
There aren’t any ways to implement the interface I refered on some platform.
At least , we need some method to know it fail to initialize ,and it would be better to get some related infomation as more as possible when there are some errors

However,I believe that it maybe can be done on Windows(I know it will be a hardship.)We only found it initialized fail on Windows ,which we can receive textinput or textedit event but candidates window don’t appear, we wish that SDL would do something for these case.

We also don’t want to render the IME, only it fail to initialize, we need to do such render work. I believe the SDL_starttextinput already works well on OS X and other platform,although I haven’t test.

.