在 x11 中捕获特定窗口中的鼠标指针

标签 c window mouseevent x11

我可以使用 x11 的 _NET_CLIENT_LIST Atom 属性获取所有窗口的列表。使用它,我选择一个我感兴趣的特定窗口,例如 gedit 窗口,并使用 XSetInputFocus ,这将完美地将键盘输入和控件设置到 gedit 窗口。

现在我的问题是,X11中是否有类似的功能,可以将鼠标焦点设置到特定窗口,这样任何鼠标点击或选择都将仅限于该特定窗口。

我尝试了XGrabPointer,但没有成功。它只会卡住鼠标,并且屏幕上不会显示进一步的鼠标输入(例如鼠标单击;我只能看到鼠标指针,也可以移动它,但它不会执行任何单击操作)。

最佳答案

您应该能够轮询鼠标事件,并且如果用户尝试移出矩形,您应该能够重新定位它。如果您不将指针保持在其他窗口之外,我认为您无法阻止鼠标点击到达它们,但这可能是可能的。

关于在 x11 中捕获特定窗口中的鼠标指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54141195/

相关文章:

c - C 中字符串数组的 Tolower 函数

c++ - 将 C++ stdin 从键盘更改为另一个设备

javascript - 在任何用户事件上重置倒数计时器(例如 onkeyup、鼠标移动等)

c - scanf 格式说明符 我想一次性获取输入并分配给两个字符串变量

c - 迭代 "opaque"抽象数据类型的最佳方式

c++ - 如何从 C 代码调用具有可变数量参数的 C++ 函数

c# - 窗口服务中的代码是如何执行的?

Java SWT : How to set the window to be resizable\not resizable on the fly?

window - 获取韦兰韦斯顿的事件窗口列表

windows-runtime - 从 WinRT 的 PointeWheelChanged 事件获取增量值