[openi18n-im:01491] Re: iiimx patch to enable key release event

Federic Zhang <[email protected]> Tue, 26 Jul 2005 11:55:52 +0800
Newsgroups gmane.comp.internationalization.input-methods
Message-ID <[email protected]>
Kasha,

the scenario without key release event is once one press event that has
been forwarded to
server isn't consumed by LE, it is LE's responsibility to put the event
into iml_inst list
with iml_make_keypress_inst, then server sends it back. Once client
receives the unconsumed
event, in the iiimgcf case, iiimgcf will fake one release event then
send both event to \
corresponding widget to handle. So the release event isn't necessary to
be sent back by LE.

Of course, in technically speaking we can send it back, but hacking is
needed:

   * provide one iml_make_keyrelease_inst in iml library
   * add imli_keyrelease in IMLExec_ICState to ask server to do send it
back
   * LE should call iml_make_keyrelease_inst to generate one
   * IIIMGCF isn't necessary to fake the release event
   * For any LE which doesn't support release event, server should
actively send it back
     (and ensure the press and release sequence in client side?)

-federic

> From: Federic Zhang <[email protected]>:
> > 
> > Attached is the patch to enable key release event in IIIMXCF side,
> > please review and give feedback, i will commit if nobody objects. Note
> > that i don't change IIIMCF_keyevent_To_XKeyEvent in KeyMap.c because
> > only key press event will be sent back from server with
> 
> Key release event will NOT be sent back?  Would you explain the
> reason?
> 
> Regards,
> -- 
> kasha
> 
> 
> > iml_make_keypress_inst if the key isn't consumed by LE.
> > 
> > To verify whether release event is sent via iiimx to server or not, the
> > client should be able to send both press and release event, for Gtk+
> > app, please use the attached gtk patch which forces filter_key_release,
> > which is just used for verification, rebuild im-xim.so and copy to
> > /usr/lib/gtk-2.0/<version>/immodules.
> > 
> > -federic