Currently IM programmers are required to deal with the 3 context objects. - id - context - per-im-context 'id' is used to communicate with C-side APIs such as im-commit or im-update-preedit. 'context' is used as base object of Scheme-side context. It is retrieved by (find-context id). 'per-im-context' contains IM-specific data. It is stored in a 'context' and retrieved by (context-data context). The distinguishment requires IM-implementors tedious context handling. You might have seen following code. (lambda (id mode) (let* ((c (find-context id)) (ac (context-data c))) Although some reasons to distinguish the objects exist for API implementor, all 3 context objects semantically mean same 'this input context' for IM-implementors. So we should show the context object as unified one for IM-implementors to eliminate complexity and confusion. See the URL for further information.
The modification for all available IMs have been performed by r1304. The difference between new API and old one will be described in doc/COMPATIBILITY.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.