[openi18n-im:01441] key release issue with iiimxcf
Federic Zhang <[email protected]> Tue, 28 Jun 2005 22:01:54 +0800
| Newsgroups | gmane.comp.internationalization.input-methods |
|---|---|
| Message-ID | <[email protected]> |
Kasha, It is caused by iiimxcf, if the attached patch is patched to iiimxcf/xiiimp.so/iiimp/KeyMap.c, it should work. Today i spent some time to look at the iiimxcf part, it seems the xim server, iiimx, can't got key release event from its client, the R6IMProtocol::xevent_loop can't receive any this kind of event. Who can tell me the reason? Is the event prohibited in client side by ximcp.so? -federic > Kasha, > > Really? Look like the pkey is corrupted, the value of keyType should be > either 1 (IM_KEY_PRESS) or 0 (IM_KEY_RELEASE). > > I just modified iiimgcf to send both key press and key release events > from client to server, please note iiixcf isn't > modified yet, is it caused by iiimxcf? please confirm whether the > problem exist in GNOME app that use im-iiim.so to communicate to server? > > Do you have info to reproduce it? I want to debug into to see what > happens. > > -federic > > > Hi Federic, > > > > JUSTSYSTEM says that your change for r2684 prevents LEs, that do > > not set IF_SUPPORTED_KEYRELEASE to True, from receiving any key > > press events. I've traced the problem with dbx, and found that > > pkey->keyType is 16, though IM_KEY_PRESS is 1. > > > > # dbx -q /usr/bin/iiimd `pgrep -u root -x iiimd` > > (dbx) stop at LE.cpp:469 > > (2) stop at "LE.cpp":469 > > (dbx) c > > t@3 (l@3) stopped in LEContext::send_event at line 469 in file "LE.cpp" > > 469 if ((pkey && pkey->keyType == IM_KEY_PRESS) || pbase->iml_if->need_keyrelease) > > (dbx) p pkey > > pkey = 0x4e4e18 > > (dbx) p pkey->keyType > > pkey->keyType = 16 > > > > Would you fix the problem as soon as possible? This problem > > really impact on the development of ATOK for Solaris. ATOK does > > not work at all. I suspects that any other LEs are also > > affected. > > > > And is it possible to disable the code until the right fix is > > implemented? If this line is disabled, ATOK seems working. > > > > Thanks, > > -- > > kasha > > > >
iiim-iiimxcf.diff
(text/x-patch, 345 B)
Index: KeyMap.c
===================================================================
--- KeyMap.c (revision 2714)
+++ KeyMap.c (working copy)
@@ -1140,6 +1140,7 @@
pkev->keychar = 0;
pkev->keycode = 0;
+ pkev->keytype = 1; /* IM_KEY_PRESS */
pkev->time_stamp = ev->time;
if (first_call && ev->display != (Display*)0) {