Win32 IME glitches
After playing around a bit with the IME on Windows, I noticed that it is rather glitchy:
The main annoyance is that the edit mode appears to be per-widget as opposed to per-window like it should be. So what happens is that you set the IME to "hiragana" for example, but when you focus another widget, it automatically resets to latin (or whatever was set before). Now I'm not a CJK user and know very little about IMEs, but I believe that is not how it should work, since it's different from the behavior on Linux and non-GTK applications on Windows.
Another issue is that the preedit buffer is also per widget – or at least kind of. The IM context tries to save and restore the buffer, but it fails and just leads to glitchy behavior. It's basically just buggy.
I made a little video demonstrating the problems (excuse my clumsy typing, not used to Qwerty anymore :)): ime
I believe that this is a regression resulting from GTK switching to non-native windows in version 2.18 (yes, it was a long time ago). The comment at the top of gtkimcontextime.c indicates that the code was written in 2003-2004. This was before the switch. Here's what I think is going on: Since the input windows are now entirely virtual input-only windows (I assume), they are treated like top-level windows by the operating system, whereas before they were child windows of the actual window. This would explain the behavior observed in the video.