Hi all,
I've used to current version of rxvt on some platform, and tried to
use XIM on Solaris 9 EA, but it was always failed to create input
context.
I read a book about XCreateIC() (but it's old and based on X11R5),
then XCreateIC() cannot recognize XNDestroyCallback on the
implementation of Solaris, I guess.
My workaround is here,
**********************************************************************
--- /export/cvsdist/rxvt/src/main.c Tue Apr 9 11:16:23 2002
+++ /home/yakk/src/rxvt/src/main.c Mon May 27 10:09:57 2002
@@ -1477,7 +1477,6 @@
h->Input_Context = XCreateIC(xim, XNInputStyle, h->input_style,
XNClientWindow, r->TermWin.parent[0],
XNFocusWindow, r->TermWin.parent[0],
- XNDestroyCallback, &ximcallback,
preedit_attr ? XNPreeditAttributes : NULL,
preedit_attr,
status_attr ? XNStatusAttributes : NULL,
@@ -1491,6 +1490,7 @@
XCloseIM(xim);
return False;
}
+ XSetICValues(h->Input_Context, XNDestroyCallback, &ximcallback, NULL);
if (h->input_style & XIMPreeditArea)
rxvt_IMSetStatusPosition(r);
D_MAIN((stderr, "rxvt_IM_get_IC() - successful connection"));
**********************************************************************
It's working now, but I think something still wrong. I know
XSetICValues() is always failed, and XSetIMValues() for registering
destroy callback is also. Besides, the status window doesn't work
well while OverTheSpot.
Any ideas?
Thanks,
-----
Kazutoshi Kubota <[EMAIL PROTECTED]>