--- rxvt-unicode/src/main.C 2006/01/25 00:42:20 1.200 +++ rxvt-unicode/src/main.C 2006/01/25 02:42:06 1.203 @@ -515,6 +515,16 @@ HOOK_INVOKE ((this, HOOK_START, DT_END)); +#if ENABLE_XEMBED + if (rs[Rs_embed]) + { + long info[2] = { 0, XEMBED_MAPPED }; + + XChangeProperty (display->display, parent[0], xa[XA_XEMBED_INFO], xa[XA_XEMBED_INFO], + 32, PropModeReplace, (unsigned char *)&info, 2); + } +#endif + XMapWindow (disp, vt); XMapWindow (disp, parent[0]); @@ -1213,7 +1223,7 @@ if (!Input_Context || !focus - || !(input_style & XIMPreeditPosition)) + || !(input_style & (XIMPreeditPosition | XIMPreeditCallbacks))) return; im_set_position (nspot); @@ -1302,6 +1312,7 @@ DT_END)); } +#if 0 static void xim_preedit_caret (XIC ic, XPointer client_data, XIMPreeditCaretCallbackStruct *call_data) { @@ -1312,6 +1323,7 @@ DT_INT, call_data->style, DT_END)); } +#endif #endif @@ -1481,16 +1493,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); }