There's one thing that I'm stuck. I would like the preedit window to pop up as you type, in the CJK mode. It shouldn't be there all the time. Currently, when I type in "watashi", the character "w" is sent to both the client and the cjk-preedit window. This results in "wわたし" in the client. As soon as the CJK mode is on, I would like the client to avoid receiving the key events, but HIM plugin doesn't allow me to propagate gdk events. I haven't been able to come up with a good solution for this problem. I tried key_snooper and gtk_invisible, but both aren't good enough. The best workaround may be to send the backspace to the client just like as follows as in this example . However, this doesn't work with the browser. This is because for the browser (or any custom gtk input widgets), the example code results in XFakeKeyEvent (Backspace) to the root window and naturally IBus is forced to swallow the Backspace unnecessarily. I guess ...
I was wondering, does your method work with Korean also?
ReplyDeleteLooks great. Does it work with the on-screen keyboard?
ReplyDeleteHi great demo! Can it do Chinese via pinyin or Hangeul yet? If so, the N900 is mine!
ReplyDeleteIn Qt, there are event filters which allow you to intercept events being passed to another object:
ReplyDeletehttp://doc.trolltech.com/4.6/eventsandfilters.html#event-filters
In Gtk+ (GDK more accurately), there is something similar:
http://library.gnome.org/devel/gdk/2.18/gdk-Windows.html#gdk-window-add-filter
Perhaps this could help you with your problem? Note that the above links are for the original versions of Qt and Gtk, (C++ and C, respectively), and not any bindings.
is your code available anywhere? github etc..
ReplyDelete