Pointer are global, not screen specific. Hence so is also the cursor sprite.tags/v1.7.90
@@ -394,10 +394,14 @@ void vncAddCopied(int scrIdx, const struct UpdateRect *extents, | |||
desktop[scrIdx]->add_copied(reg, rfb::Point(dx, dy)); | |||
} | |||
void vncSetCursor(int scrIdx, int width, int height, int hotX, int hotY, | |||
void vncSetCursor(int width, int height, int hotX, int hotY, | |||
const unsigned char *rgbaData) | |||
{ | |||
desktop[scrIdx]->setCursor(width, height, hotX, hotY, rgbaData); | |||
for (int scr = 0; scr < vncGetScreenCount(); scr++) { | |||
if (desktop[scr] == NULL) | |||
continue; | |||
desktop[scr]->setCursor(width, height, hotX, hotY, rgbaData); | |||
} | |||
} | |||
void vncPreScreenResize(int scrIdx) |
@@ -84,7 +84,7 @@ void vncAddCopied(int scrIdx, const struct UpdateRect *extents, | |||
int nRects, const struct UpdateRect *rects, | |||
int dx, int dy); | |||
void vncSetCursor(int scrIdx, int width, int height, int hotX, int hotY, | |||
void vncSetCursor(int width, int height, int hotX, int hotY, | |||
const unsigned char *rgbaData); | |||
void vncPreScreenResize(int scrIdx); |
@@ -699,7 +699,7 @@ static Bool vncHooksDisplayCursor(DeviceIntPtr pDev, | |||
} | |||
#endif | |||
vncSetCursor(pScreen->myNum, width, height, hotX, hotY, rgbaData); | |||
vncSetCursor(width, height, hotX, hotY, rgbaData); | |||
free(rgbaData); | |||
} |