Hello,
I have a problem with XWarpPointer. It seems doesn't work properly.
After startx, I don't move the mouse. and then I run a program which should 
move the mouse pointer around the screen (in absolute coordinates) as below 
WITHOUT moving the mouse cursor. 
(I use keyboard shortcut to run program.)
However, visual mouse cursor jumped to a single position (x=0,y=0) on the 
screen and stay there permanently until the program is finished.

The program seems work properly judging from message as below. but visual mouse 
cursor is locked to a same position (x=0, y=0) on the screen. 

XWarpPointer(): x=   0, y=   0
XWarpPointer(): x= 100, y= 100
XWarpPointer(): x= 200, y= 200
XWarpPointer(): x= 300, y= 300
XWarpPointer(): x= 400, y= 400
XWarpPointer(): x= 500, y= 500
XWarpPointer(): x= 600, y= 600
XWarpPointer(): x= 700, y= 700

If I move the mouse cursor before I run the program, XWarpPointer works. visual 
mouse cursor move correctly.
What is causing the XWarpPointer to only run once? Is it some kind of X11 
feature to protect the user from the application?

I'm running into an issue on xorg-server 1.8.2 and libX11 1.3.1. 
However, I could see a same problem with xorg on Fedora17(xorg-server 1.12.0 
and libX11 1.4.99).
Could you please suggest me how can I solve this problem? 
 
Lastly, I found similar problem on website.
http://stackoverflow.com/questions/5848909/why-does-xwarppointer-only-work-once-while-in-a-loop
but It seems this issue has not yet been solved.

Thank you for your time and assistance regarding this matter.
----------------------------------------------------------------------------------------------
#include <stdio.h>
#include <unistd.h>
#include <X11/X.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>

int main(int argc, char *argv[]){
        //Get system window
        Display *dpy;
        Window root_window;
        int x,y;

        dpy = XOpenDisplay(0);
        root_window = XRootWindow(dpy, 0);
        XSelectInput(dpy, root_window, KeyReleaseMask);

        for (x=0,y=0; y<768; x+=100,y+=100) {
                sleep(1);    
                printf("XWarpPointer(): x=%5d, y=%5d\n", x, y);
                XWarpPointer(dpy, None, root_window, 0, 0, 0, 0, x, y);
                XFlush(dpy);
               //XSync(dpy, False); <-- no difference 
        }

        return 0;
}
----------------------------------------------------------------------------------------------
I added these keyboard shortcuts to .twmrc.

~/.twmrc
------------------------------------------
RandomPlacement
"F1"  =     : all : f.exec "xterm &"
"F2"  =     : all : f.fullzoom
"F3"  =     : all : f.raiselower
"F4"  =     : all : f.focus

"F5"  =     : all : f.showiconmgr
"F6"  =     : all : f.warptoiconmgr ""
"F7"  =     : all : f.downiconmgr
"F8"  =     : all : f.hideiconmgr

"F9"  =     : all : f.iconify
"F10" =     : all : f.delete
"F11" =     : all : f.quit
"F12" =     : all : f.exec "exec kterm &"
"F12" =  m  : all : f.startwm "wmaker"

"Tab" =  m  : all : f.raiselower

"Return" = s : all : f.fullzoom
------------------------------------------
_______________________________________________
xorg@lists.x.org: X.Org support
Archives: http://lists.freedesktop.org/archives/xorg
Info: http://lists.x.org/mailman/listinfo/xorg
Your subscription address: arch...@mail-archive.com

Reply via email to