Почему 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 для защиты пользователя от приложения?
К вашему сведению, я использую RHEL 5.2 на VMWare Fusion на Mac OSX 10.6.
Обновление:
- При запуске двоичного файла компоненты, такие как кнопка или значок, мерцают, но визуальный курсор мыши остается там, где я его перемещаю.
- После того, как один раз XWarpPointer работает, когда я перемещаю мышь, курсор переходитпочти до того места, где он был до того, как я его исказил.Это как если бы есть (last_x, last_y), который не обновляется.
- Когда я меняю указатель с помощью OpenVMTools, кажется, что указатель больше привязывается к нужному месту, но визуальный указатель не меняется.
Спасибо, Ченц