Re: XIM application frozen on gtk+1.3.*



>After some investigation, the problem here is that the XIM code
>in GDK is interfering with the operation of the module - 
>XFilterEvent is effectively being called twice which triggers
>a loop.

I see. When kinput2 does not filter a key event while Japanese input
is on and returns it to application, that event gets infinitely bounced
between the gdk-X11 and GtkIMContextXIM, and gets in a loop.....

>So, the immediate workaround is to configure GTK+ with
>--disable-xim. The slightly longer term solution is to remove
>all the XIM code from GDK.

If we either disable or remove GDK's XIM, GTK+ applications and widgets
have to trasfer to new IM Framework in order to get input method worked,
correct? Hmm, how many gnome applications and widgets are there
which directly uses gdk_im_* APIs? I know Mozilla does..

>
>It should be noted that the way that GtkIMContextXIM handles
>interaction with Xlib is definitely not fully compliant with the way
>XIM is supposed to, and while kinput2 seems to work reasonably well,
>other input methods probably will need some changes to the 
>way the module works.

Can we extend IM framework and allow XIM module to support
Over-the-spot and Root-window inputstyle as well? Root-window style
is relatively easy and Over-the-spot oughts to work *to some extent*
if gtk window can set spot-location.

Then, most of existing input methods would work with the XIM in
the new IM Framework, almost equivalently to the GDK's XIM.

>The problem basically is that Xlib specifies a big range of
>operations that the input method is supposed to be able
>to do on the client method (select for input, send events,
>etc), but we can't really support these very well in the
>IM framework because we have an abstraction barrier betwen 
>the widget and the input method module.
>
>I think it should be possible to work around that problem
>by using offscreen windows and some tricks with
>gdk_window_add_filter().
>
>But in any case, configure with --disable-xim and at least
>kinput2 will work.

Thanks. I'll try this.

-toshi





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]