diff options
Diffstat (limited to 'unix')
-rw-r--r-- | unix/xserver/hw/vnc/Input.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/unix/xserver/hw/vnc/Input.c b/unix/xserver/hw/vnc/Input.c index 55befa75..64305cbc 100644 --- a/unix/xserver/hw/vnc/Input.c +++ b/unix/xserver/hw/vnc/Input.c @@ -33,7 +33,9 @@ #include "inpututils.h" #endif #include "mi.h" +#include "mipointer.h" #include "exevents.h" +#include "scrnintstr.h" #include "xkbsrv.h" #include "xkbstr.h" #include "xserver-properties.h" @@ -186,8 +188,16 @@ void vncPointerMove(int x, int y) void vncGetPointerPos(int *x, int *y) { - if (vncPointerDev != NULL) - GetSpritePosition(vncPointerDev, &cursorPosX, &cursorPosY); + if (vncPointerDev != NULL) { + ScreenPtr ptrScreen; + + miPointerGetPosition(vncPointerDev, &cursorPosX, &cursorPosY); + + /* Pointer coordinates are screen relative */ + ptrScreen = miPointerGetScreen(vncPointerDev); + cursorPosX += ptrScreen->x; + cursorPosY += ptrScreen->y; + } *x = cursorPosX; *y = cursorPosY; |