我正在尝试向McCLIM添加输入法支持,这样它就可以使用像fcitx这样的输入法客户端在McCLIM中输入CJK。
为了更好地绘制fcitx,我希望在文本编辑区发生变化时获得它的光标位置。
看起来像这样:

我找到了一个叫cursor-position/stream-cursor-position的东西,但我不知道如何让cursor/stream成为当前的焦点。我尝试过*standard-output*,但失败了。
我怎么能这样做呢?
发布于 2021-02-26 07:22:24
我知道您没有使用libx11,但我想向您展示一下libX11是如何做到这一点的。
基本上,这是由协议中的XIM_SET_IC_VALUES完成的。在预编辑属性的嵌套值中的点位置的值。
该点只是一个X点(x,y)。尽管如此,该点是焦点窗口的相对坐标。焦点窗口也是ic vlaues的一部分,属性名为XNFocusWindow。
如果不设置焦点窗口,则通过XCreateIC传递的客户端窗口将用作焦点窗口。
XVaNestedList preedit_attr;
preedit_attr = XVaCreateNestedList(0, XNSpotLocation, &nspot, NULL);
XSetICValues(ic, XNPreeditAttributes, preedit_attr, NULL);
XFree(preedit_attr);https://stackoverflow.com/questions/66290102
复制相似问题