XRegisterIMInstantiateCallback()




Recently a number of people have been reporting difficulty
with the call to XRegisterIMInstantiateCallback() added to
GDK recently.

The idea of using this call is that a GTK+ application might
be started at the same time as the XIM server, and so the IM
might not be available when the app starts up, but would be
available later.

For GTK+, this often does no good, since entries created
between the time that GDK was initialized and the time that
the IM starts up will not be created with input contexts and
won't get them later either. I don't see any way of fixing
this without major changes to the way that GDK input
contexts, because we the Entry needs to be able to get
information about the details of the input context created.

Now, this in itself wouldn't be a reason to remove the call,
but XRegisterIMInstantiateCallback() seems to be a
portability problem - it doesn't exist under X11R5, while
without it, the old XIM stuff worked, I think, on at least
some X11R5 platforms.

And, also, on Solaris under X11R6, XRegisterIMInstantiateCallback()
apparently coredumps. It's possible this is a symptom
of something that GDK is doing wrong, but it's not
obvious to me from the documentation what this is.

But I'm not sure if there isn't some reason why this
is really necessary. If so, it might be worth trying
to figure out what is going wrong on Solaris, and 
conditionally using it on non-X11R5 platforms.

Other thoughts?
                                        Owen



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