This is the mail archive of the
cygwin-xfree@cygwin.com
mailing list for the Cygwin XFree86 project.
Re: IME XIM server
Thank you. I write more detail.
*How to use
XWin -xim -multiwindow&
xime&
XMODIFIERS=@im=XIME emacs&
*To do
1. off-the-spot and on-the-spot aren't implemented yet.
2. It supports Japanese locale only.
3. It can handle only CTEXT.
4. Multiwindow only.
*Problem
1. It ignores forwarded events from IM client.
2. When IME is open, it blocks all keyboard input.
General XIM server
Windows XWin X Client IM Server
| WM_KEYDOWN | XKeyEvent | XIM_FORWARW_EVENT |
|----------------->|-------------------->|--------------------->|
| | | XIM_COMMIT/FORWARD |
| | |<---------------------|
| | | |
IME-XIM need to call TranslateMessage, and it has to handle WM_IME_* message.
IME-XIM server idea
Windows XWin X Client IM Server
| WM_KEYDOWN | XKeyEvent | XIM_FORWARW_EVENT |
|------------------>|-------------------->|--------------------->|
|TranslateMessage(*)| | forward |
|<------------------|<-------------------------------------------|
IME| WM_IME_* | | |
|------------------>|------------------------------------------->|
| | | XIM_COMMIT |
| | |<---------------------|
| | | |
But I don't know how to do (*).
So now
Current IME-XIM implementation
Windows XWin X Client IM Server
| WM_KEYDOWN | XKeyEvent | XIM_FORWARW_EVENT |
|------------------>|-------------------->|--------------------->|ignore
|TranslateMessage(*)| | |
|<------------------| | |
IME| WM_IME_* | | |
|------------------>|------------------------------------------->|
| | | XIM_COMMIT/FORWARD |
| | |<---------------------|
| | | |
This causes problem #1 and #2.
Any idea?
--
Kensuke Matsuzaki
mailto:zakki@peppermint.jp
http://peppermint.jp