为什么XWarpPointer只工作一次(在循环中)?

| 为什么XWarpPointer只工作一次? 当我跑步时:
#include <stdio.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/Xatom.h>

int main()
{
  Display *dpy = XOpenDisplay(0);
  while (1) {
    Window root_window;
    root_window = XRootWindow(dpy, 0);
    XSelectInput(dpy, root_window, KeyReleaseMask);
    XWarpPointer(dpy, None, root_window, 0, 0, 0, 0, 100, 100);
    XSync(dpy, False);
  }
}
鼠标应显示为锁定在单个位置。但是它只移动一次鼠标,然后让我在循环仍在运行时四处移动。是什么导致XWarpPointer只运行一次?是否有某种X11功能可以保护用户免受应用程序的侵害? 仅供参考,我在Mac OSX 10.6的VMWare Fusion上运行RHEL 5.2。 更新: 运行二进制文件时,组件 像按钮或图标闪烁一样,但是 可视鼠标光标停留在我所在的位置 移动它。 在XWarpPointer做过一次之后 工作,当我移动鼠标时, 光标跳到原来的位置 在我变形之前。好像 是不是(last_x,last_y)的 不断更新。 当我通过更改指针 OpenVMTools似乎使 指针停留在所需位置 更多,但视觉指示器不 更改。 谢谢, 钦兹     
已邀请:
我在这里没有经验,但是如果您不放弃XSync中的事件怎么办?例如
XSync(dpy, True);
?     
XWarpPointer(dpy, None, root_window, 0, 0, 0, 0, 100, 100);
尝试
XFlush(dpy);
这应该可以解决问题。     
XWarpPointer
仅将指针移动到指定位置。它并不能阻止它随后移动。     

要回复问题请先登录注册