我在追踪一个bug,我怀疑它是我自己对X的误解:
DR-有时XEnterNotify事件给出的全局鼠标坐标与输入的窗口不对应。
我正在修改一个平铺窗口管理器(鼠毒)。屏幕被划分为多个帧,每个帧可以包含一个映射窗口。如果一个框架不包含窗口,我想要聚焦该框架。因此,我请求根窗口上的EnterNotify事件,将XEvent转换为XCrossingEvent,然后查看x_root和y_root以确定鼠标在屏幕上的位置。我希望得到全局屏幕坐标。问题是,有时当我将鼠标移到空的框架上时,我会在根窗口上得到一个EnterNotify事件,但该事件的(x_root,y_root)成员会在我所来自的框架中给出一个点(即,不是在根窗口的暴露部分)。
有什么建议吗?
发布于 2014-10-03 03:12:23
我认为答案如下:
不能保证鼠标坐标与任何特定内容同步。唯一可以确定的是,鼠标位于这些坐标的某个点上,并且后面的事件会有一个后面的鼠标位置。为了知道鼠标的真实位置,我需要监听根窗口上的运动事件(以便最终获得我想要的信息),或者调用(可能) XQueryPointer()。
请注意,我不是100%确定这个答案。
https://stackoverflow.com/questions/26088742
复制相似问题