IME (Input method editor) is a program which allows keyboard strokes to be transformed into characters and is particularly useful for CJK (Chinese, Japanese and Korean) languages which have a large amount of characters and you need multiple keystrokes in order to produce one character.
In order to support IMEs better, one should specify where the text is written in the application, so the IME program would display its content near that position.
Example given:
While having good IME support isn't necessary in order to have some i18n support (http://springrts.com/wiki/Project_propo ... on_support), it's pretty important.
This is what we have with Spring currently:
So in order to get IME running, one must tell the window system where it should spawn the IME content (and it will relay that to whatever IME program is running). One way to do that would be to use SDL, which has a function for that: http://wiki.libsdl.org/moin.fcg/SDL_SetTextInputRect, but that seems to require SDL 2.0+: http://comments.gmane.org/gmane.comp.lib.sdl/48403. To make matters worse I've checked the SDL 2.0 implementations and it seems that there is no x11 (linux desktop window system) implementation, while there are android, cocoa, bwindow and windows ones.
I also didn't manage to find anything useful in the X11 documentation, might've missed that though: http://www.x.org/releases/X11R7.6/doc/l ... ut_Methods
Conclusion/TLDR:
Any idea how to make IME properly set its position in Spring on all Spring-supported systems?
PS: I don't actually play many games with a running IME, but it may also make sense to disable it while not chatting (so commands would still work) so the user doesn't have to toggle it manually every time he wants to chat. But I think having positions sorted would be a first step...