*blueMask = vis->blueMask;
}
+int vncGetScreenX(int scrIdx)
+{
+ return screenInfo.screens[scrIdx]->x;
+}
+
+int vncGetScreenY(int scrIdx)
+{
+ return screenInfo.screens[scrIdx]->y;
+}
+
int vncGetScreenWidth(int scrIdx)
{
return screenInfo.screens[scrIdx]->width;
int *trueColour, int *bigEndian,
int *redMask, int *greenMask, int *blueMask);
+int vncGetScreenX(int scrIdx);
+int vncGetScreenY(int scrIdx);
int vncGetScreenWidth(int scrIdx);
int vncGetScreenHeight(int scrIdx);
// We are responsible for propagating mouse movement between clients
int cursorX, cursorY;
vncGetPointerPos(&cursorX, &cursorY);
+ cursorX -= vncGetScreenX(screenIndex);
+ cursorY -= vncGetScreenY(screenIndex);
if (oldCursorPos.x != cursorX || oldCursorPos.y != cursorY) {
oldCursorPos.x = cursorX;
oldCursorPos.y = cursorY;
void XserverDesktop::pointerEvent(const Point& pos, int buttonMask)
{
- vncPointerMove(pos.x, pos.y);
+ vncPointerMove(pos.x + vncGetScreenX(screenIndex),
+ pos.y + vncGetScreenY(screenIndex));
vncPointerButtonAction(buttonMask);
}