Re: XIM application frozen on gtk+1.3.*



Owen Taylor <otaylor redhat com> writes:

> tajima <hidetoshi tajima eng sun com> writes:
> 
> > I'm seeing the problem described below when I input Japanese text
> > via XIM input module on a sample program gtk/testtext.c distrubuted with
> > gtk+.
> > 
> > This happens on both 1.3.2 tarball and the latest out of cvs.
> 
> I'll look at this tomorrrow. It sounds like pretty much the environment
> I was using to test gtkimcontextxim, but perhaps things have
> changed since I wrote it.
 
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.

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.

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.

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.

Regards,
                                        Owen

> > -toshi
> > ---------
> > 
> > Operating System:
> > 	Redhat Linux 6.2J on intel PC
> > Language:
> > 	Japanese
> > Problem Summary:
> > 	gtk/testtext hangs when the preedit text gets committed
> > Which feature or component were you using?
> > 	XIM input module in gtk+/module/input
> > How serious is the problem?
> > 	Critical, causing the application to hang
> > Does the problem happen consistently?
> > 	Yes, always
> > What are the steps to reproduce the problem?
> > 
> > 	Run "testtext" program in gtk+/gtk/ with LANG=ja_JP.eucJP
> > 	on Redhat 6.2J. The program should automatically use kinput2 XIM
> > 	server by default. Then, with the steps below, the application
> > 	hangs.
> > 	
> > 	 1. hit "Shift-space" to start Japanese input.
> > 	 2. type any text, e.g. "aiu".
> > 	 3. hit RETURN key, then the application hangs, but it
> > 	    should commit(finalize) the text, instead.
> > 	    On kterm, the same steps commit the preedit text properly.
> > 
> > 
> > 
> > _______________________________________________
> > gtk-i18n-list mailing list
> > gtk-i18n-list gnome org
> > http://mail.gnome.org/mailman/listinfo/gtk-i18n-list
> 
> _______________________________________________
> gtk-i18n-list mailing list
> gtk-i18n-list gnome org
> http://mail.gnome.org/mailman/listinfo/gtk-i18n-list




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