首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

X11: XQueryPointer给了我模糊的窗口

XQueryPointer函数在某些情况下可能会返回模糊的窗口信息,这通常是因为X窗口系统中的窗口管理器或桌面环境对鼠标焦点窗口进行了特殊处理

要解决这个问题,您可以尝试以下方法:

  1. 使用XGetInputFocus函数来获取当前具有输入焦点的窗口,而不是使用XQueryPointer。示例代码如下:
代码语言:javascript
复制
Window focused_window;
int revert_to;
XGetInputFocus(display, &focused_window, &revert_to);
  1. 尝试在查询鼠标指针位置之前,延迟一段时间,以确保窗口管理器已经处理了所有最近的事件。您可以使用usleep函数实现延迟:
代码语言:javascript
复制
#include <unistd.h>
//...
usleep(100000); // 延迟100毫秒
  1. 如果上述方法仍然无法解决问题,您可以尝试使用Xlib扩展,如XInput2,它提供了更精确的输入设备信息和事件处理。请注意,这需要额外的配置和编程工作来使用XInput2扩展。
  2. 如果您使用的是GNOME桌面环境,您可以尝试使用libwnck库来获取当前活动窗口的信息,该库为窗口管理器提供了更高级的抽象。
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的合辑

领券