--- rxvt-unicode/src/main.C 2006/01/25 00:42:20 1.200 +++ rxvt-unicode/src/main.C 2006/01/25 01:08:38 1.202 @@ -1213,7 +1213,7 @@ if (!Input_Context || !focus - || !(input_style & XIMPreeditPosition)) + || !(input_style & (XIMPreeditPosition | XIMPreeditCallbacks))) return; im_set_position (nspot); @@ -1302,6 +1302,7 @@ DT_END)); } +#if 0 static void xim_preedit_caret (XIC ic, XPointer client_data, XIMPreeditCaretCallbackStruct *call_data) { @@ -1312,6 +1313,7 @@ DT_INT, call_data->style, DT_END)); } +#endif #endif @@ -1481,16 +1483,23 @@ } else if (input_style & XIMPreeditCallbacks) { + im_set_position (spot); + xcb[0].client_data = (XPointer)this; xcb[0].callback = (XIMProc)xim_preedit_start; xcb[1].client_data = (XPointer)this; xcb[1].callback = (XIMProc)xim_preedit_done; xcb[2].client_data = (XPointer)this; xcb[2].callback = (XIMProc)xim_preedit_draw; +#if 0 xcb[3].client_data = (XPointer)this; xcb[3].callback = (XIMProc)xim_preedit_caret; +#endif preedit_attr = XVaCreateNestedList (0, + XNSpotLocation, &spot, XNPreeditStartCallback, &xcb[0], XNPreeditDoneCallback , &xcb[1], XNPreeditDrawCallback , &xcb[2], +#if 0 XNPreeditCaretCallback, &xcb[3], +#endif NULL); }