lisp - 如何获取 McCLIM 的光标位置
问题描述
我正在尝试向 McCLIM 添加输入法支持,以便它可以使用 fcitx 等输入法客户端在 McCLIM 中输入 CJK。
为了更好地绘制 fcitx,我想获取文本编辑区域更改时的光标位置。
我发现了一个叫做 的东西cursor-position/stream-cursor-position
,但我不知道如何获得cursor/stream
当前的关注。我试过*standard-output*
了,但是失败了。
我怎么能这样做?
解决方案
我知道您没有使用 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);
推荐阅读
- sql - TOMCAT:与主机 127.0.0.1、端口 1433 的 TCP/IP 连接失败
- python - RuntimeError: `loss` 传递给 Optimizer.compute_gradients 应该是启用急切执行时的函数。使用 TensorFlow 1.15
- python - 子类模型中的大多数卷积滤波器不存在梯度
- oracle - 如果可折叠报告为空,Oracle apex 19.2 会显示用户
- python - 为什么 alembic 没有看到模型并且没有与它们同步?
- swift - 使用 Apple Button 登录仅在应用重新启动时更改配色方案
- python - 当我尝试在终端中找到 conda 路径时,发生了一些非常奇怪的事情
- networking - 未加载 Realtek UEFI UNDI 驱动程序
- python - 计算的特征:通过的项目数量错误 2,位置意味着 1
- python-3.x - 防止经过身份验证的用户访问 django 中的内置登录表单