[immodule-qt] Slave qt immodule support and dead key issue

YamaKen yamaken at bp.iij4u.or.jp
Sat Jul 17 13:43:48 EEST 2004


Hi,

At Fri, 16 Jul 2004 16:18:15 +0000,
liucougar at gmail.com wrote:
> On Sat, 17 Jul 2004 00:26:03 +0900, YamaKen <yamaken at bp.iij4u.or.jp> wrote:
> > I also agree with you. But I've found a API design error that
> > prevents implementing slave context.
> >
> > The problem is the tight relationship between QWidget and
> > QInputContext via QIMEvent and focusWidget. Current
> > implementation is preventing multiplexing and proxying plural
> > contexts. The problem is also preventing implementing an
> > im-switcher that switches between qt-immodules (like
> > gtkimmulticontext).
> Yes, I think this is the real problem too. Maybe we need another proxy
> abstract level?

I think that the API should be modified to enable ordinary proxy
model.

> > I'm investigating how to resolve it.
> What's your idea?

I've written an experimental patch and immodule-switcher. Please
review attached patch. The changes are following.

1. Use signal to deliver QIMEvent instead of explicit
   postEvent(). This enables QIMEvent proxying and better
   platform abstraction. Corresponding slot is created as
   QApplication::imEventReceived().

2. Move some methods of QInputContext to public from protected
   or private. This enables that proxy-IM can access slave
   methods.

3. Make some methods of QInputContext virtual. This enables
   overriding the methods as proxy


This patch does not break binary compatibility from vanilla Qt3.
But it costs immodule developer small modification. See second
patch for QtUim as example.

Since QMultiInputContext is just a prototype implementation, I
hope that someone completes it as usable :)

-------------------------------
YamaKen  yamaken at bp.iij4u.or.jp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: immodule-qt-x11-trunk-r18-qmultiinputcontext.diff
Type: application/octet-stream
Size: 15881 bytes
Desc: not available
Url : http://lists.freedesktop.org/archives/immodule-qt/attachments/20040717/d3a17d19/attachment.obj 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: uim-trunk-r1000-follow-api-change.diff
Type: application/octet-stream
Size: 1579 bytes
Desc: not available
Url : http://lists.freedesktop.org/archives/immodule-qt/attachments/20040717/d3a17d19/attachment-0001.obj 


More information about the immodule-qt mailing list