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]>

Reply via email to