Thanks for the comments. Peter Hutterer wrote: > InitEventList should only be called once and that's done in the DIX anyway. > Use GetEventList() instead here.
Oops. I'm not sure how I missed the existence of that >> +void winEnqueueMotion(int x, int y) > > I don't think this one is needed. use miPointerSetPosition instead. > >> Index: xorg-git/xserver/hw/xwin/winmultiwindowwndproc.c >> =================================================================== >> --- xorg-git.orig/xserver/hw/xwin/winmultiwindowwndproc.c >> +++ xorg-git/xserver/hw/xwin/winmultiwindowwndproc.c >> @@ -535,9 +535,9 @@ winTopLevelWindowProc (HWND hwnd, UINT m >> } >> >> /* Deliver absolute cursor position to X Server */ >> - miPointerAbsoluteCursor (ptMouse.x - s_pScreenInfo->dwXOffset, >> - ptMouse.y - s_pScreenInfo->dwYOffset, >> - g_c32LastInputEventTime = GetTickCount ()); >> + winEnqueueMotion(ptMouse.x - s_pScreenInfo->dwXOffset, >> + ptMouse.y - s_pScreenInfo->dwYOffset); >> + > > as above, miPointerSetPosition. I think I must be missing understanding something important here. If I don't enqueue motion events, xeyes stares fixedly at the centre of the screen and all my mouse clicks appear to be there as well... >> /* Call the mi warp procedure to do the actual warping in X. */ >> - miPointerWarpCursor (pScreen, x, y); >> + miPointerWarpCursor (inputInfo.pointer, pScreen, x, y); > > That should be miPointerWarpCursor(pDev, pScreen, x, y); > Not that it matters much if you have only one cursor anyway, but still. > > Rest looks ok, though I didn't even compile-tested it. Good catch :-) _______________________________________________ xorg mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/xorg
