|
发表于 2007-4-24 19:50:43
|
显示全部楼层
现在好了,urxvt启动又很快了!:-)
是XCreateFontSet太慢了,延迟都发生在这里。
rxvt_term::IM_get_IC中调用XCreateFontSet:
sprintf (pat,
"-*-*-*-R-*-*-%d-*-*-*-*-*-*,"
"-*-*-*-R-*-*-%d-*-*-*-*-*-*,"
"-*-*-*-R-*-*-%d-*-*-*-*-*-*,"
"-*-*-*-R-*-*-%d-*-*-*-*-*-*,"
"-*-*-*-R-*-*-%d-*-*-*-*-*-*,"
"*",
fheight,
fheight + 1, fheight - 1,
fheight - 2, fheight + 2);
fs = XCreateFontSet (dpy, rs[Rs_imFont] ? rs[Rs_imFont] : pat,
&missing_charset_list, &missing_charset_count, &def_string);
我打印rs[Rs_imFont]发现是NULL,我将rs[Rs_imFont] ? rs[Rs_imFont] :
pat替换成"fixed"后,urxvt启动就飞快了。
好像是fcitx的字体设置没有传进来。
urxvt这里的处理好像并不影响fcitx,这里用"fixed",fcitx中仍然是用的东文宋体,我系统中TrueType中文只装了东文宋体,fcitx的中文字体是设置为"*"。XCreateFontSet这里用的是XLFD,fcitx应该是用的xft吧?urxvt这里的设置和fcitx有什么关系,Yuking能解释一下吗?谢谢!
rxvt_term::IM_get_IC后来调用了
Input_Context = XCreateIC (xim,
XNInputStyle, input_style,
XNClientWindow, vt,
XNFocusWindow, parent[0],
preedit_attr ? XNPreeditAttributes : NULL,
preedit_attr,
status_attr ? XNStatusAttributes : NULL,
status_attr, NULL);
来创建Input method context, 不知道和fcitx有什么关系。 |
|