From 0935c4973fdff0db5167a5a722e06a7910bad08c Mon Sep 17 00:00:00 2001 From: Ander Conselvan de Oliveira <ander@mandriva.com.br> Date: Mon, 12 Jan 2009 17:33:28 -0200 Subject: [PATCH 701/705] Fix for X server 1.6 input interface changes --- hw/vnc/cursor.c | 2 +- hw/vnc/cutpaste.c | 2 +- hw/vnc/dispcur.c | 51 ++++++++++++++++++++++++++++++---------- hw/vnc/init.c | 12 ++++----- hw/vnc/kbdptr.c | 22 ++++++++-------- hw/vnc/rfb.h | 3 ++ hw/vnc/rfbmouse.c | 1 - hw/vnc/rfbserver.c | 5 ++- hw/vnc/sprite.c | 58 ++++++++++++++++++++++++++++++++------------- hw/vnc/sprite.h | 15 ++++++++++++ hw/vnc/vncext.c | 12 ++++---- hw/xfree86/vnc/vncInit.c | 32 +++++++++++++------------ 12 files changed, 141 insertions(+), 74 deletions(-) diff --git a/hw/vnc/cursor.c b/hw/vnc/cursor.c index d355e03..955c780 100644 --- a/hw/vnc/cursor.c +++ b/hw/vnc/cursor.c @@ -262,7 +262,7 @@ rfbSendCursorPos(cl, pScreen) #if XFREE86VNC if (pScreen == pCursorScreen) - miPointerPosition(&x, &y); + miPointerGetPosition(ptrDevice, &x, &y); #else rfbSpriteGetCursorPos(pScreen, &x, &y); #endif diff --git a/hw/vnc/cutpaste.c b/hw/vnc/cutpaste.c index 6f57aca..4bb3184 100644 --- a/hw/vnc/cutpaste.c +++ b/hw/vnc/cutpaste.c @@ -66,7 +66,7 @@ rfbSetXCutText(char *str, int len) event.u.selectionClear.time = GetTimeInMillis(); event.u.selectionClear.window = pSel->window; event.u.selectionClear.atom = pSel->selection; - (void) TryClientEvents (pSel->client, &event, 1, + (void) TryClientEvents (pSel->client, NULL, &event, 1, NoEventMask, NoEventMask /* CantBeFiltered */, NullGrab); } diff --git a/hw/vnc/dispcur.c b/hw/vnc/dispcur.c index 0ccf0a7..7f77c7d 100644 --- a/hw/vnc/dispcur.c +++ b/hw/vnc/dispcur.c @@ -106,18 +106,23 @@ typedef struct { static Bool rfbDCRealizeCursor(ScreenPtr pScreen, CursorPtr pCursor); static Bool rfbDCUnrealizeCursor(ScreenPtr pScreen, CursorPtr pCursor); -static Bool rfbDCPutUpCursor(ScreenPtr pScreen, CursorPtr pCursor, +static Bool rfbDCPutUpCursor(DeviceIntPtr pDev, ScreenPtr pScreen, + CursorPtr pCursor, int x, int y, unsigned long source, unsigned long mask); -static Bool rfbDCSaveUnderCursor(ScreenPtr pScreen, int x, int y, - int w, int h); -static Bool rfbDCRestoreUnderCursor(ScreenPtr pScreen, int x, int y, - int w, int h); -static Bool rfbDCMoveCursor(ScreenPtr pScreen, CursorPtr pCursor, +static Bool rfbDCSaveUnderCursor(DeviceIntPtr pDev, ScreenPtr pScreen, + int x, int y, int w, int h); +static Bool rfbDCRestoreUnderCursor(DeviceIntPtr pDev, ScreenPtr pScreen, + int x, int y, int w, int h); +static Bool rfbDCMoveCursor(DeviceIntPtr pDev, ScreenPtr pScreen, + CursorPtr pCursor, int x, int y, int w, int h, int dx, int dy, unsigned long source, unsigned long mask); -static Bool rfbDCChangeSave(ScreenPtr pScreen, int x, int y, int w, int h, - int dx, int dy); +static Bool rfbDCChangeSave(DeviceIntPtr pDev, ScreenPtr pScreen, + int x, int y, int w, int h, int dx, int dy); +static Bool rfbDCDeviceCursorInitialize(DeviceIntPtr pDev, + ScreenPtr pScreen); +static void rfbDCDeviceCursorCleanup(DeviceIntPtr pDev, ScreenPtr pScreen); static rfbSpriteCursorFuncRec rfbDCFuncs = { rfbDCRealizeCursor, @@ -127,6 +132,8 @@ static rfbSpriteCursorFuncRec rfbDCFuncs = { rfbDCRestoreUnderCursor, rfbDCMoveCursor, rfbDCChangeSave, + rfbDCDeviceCursorInitialize, + rfbDCDeviceCursorCleanup, }; Bool @@ -428,7 +435,8 @@ rfbDCMakeGC(GCPtr *ppGC, WindowPtr pWin) } static Bool -rfbDCPutUpCursor (pScreen, pCursor, x, y, source, mask) +rfbDCPutUpCursor (pDev, pScreen, pCursor, x, y, source, mask) + DeviceIntPtr pDev; ScreenPtr pScreen; CursorPtr pCursor; int x, y; @@ -483,7 +491,8 @@ rfbDCPutUpCursor (pScreen, pCursor, x, y, source, mask) } static Bool -rfbDCSaveUnderCursor (pScreen, x, y, w, h) +rfbDCSaveUnderCursor (pDev, pScreen, x, y, w, h) + DeviceIntPtr pDev; ScreenPtr pScreen; int x, y, w, h; { @@ -516,7 +525,8 @@ rfbDCSaveUnderCursor (pScreen, x, y, w, h) } static Bool -rfbDCRestoreUnderCursor (pScreen, x, y, w, h) +rfbDCRestoreUnderCursor (pDev, pScreen, x, y, w, h) + DeviceIntPtr pDev; ScreenPtr pScreen; int x, y, w, h; { @@ -542,7 +552,8 @@ rfbDCRestoreUnderCursor (pScreen, x, y, w, h) } static Bool -rfbDCChangeSave (pScreen, x, y, w, h, dx, dy) +rfbDCChangeSave (pDev, pScreen, x, y, w, h, dx, dy) + DeviceIntPtr pDev; ScreenPtr pScreen; int x, y, w, h, dx, dy; { @@ -675,7 +686,8 @@ rfbDCChangeSave (pScreen, x, y, w, h, dx, dy) } static Bool -rfbDCMoveCursor (pScreen, pCursor, x, y, w, h, dx, dy, source, mask) +rfbDCMoveCursor (pDev, pScreen, pCursor, x, y, w, h, dx, dy, source, mask) + DeviceIntPtr pDev; ScreenPtr pScreen; CursorPtr pCursor; int x, y, w, h, dx, dy; @@ -790,3 +802,16 @@ rfbDCMoveCursor (pScreen, pCursor, x, y, w, h, dx, dy, source, mask) 0, 0, w, h, x, y); return TRUE; } + +static Bool +rfbDCDeviceCursorInitialize (DeviceIntPtr pDev, ScreenPtr pScreen) +{ + return TRUE; +} + +static void +rfbDCDeviceCursorCleanup (DeviceIntPtr pDev, ScreenPtr pScreen) +{ + return; +} + diff --git a/hw/vnc/init.c b/hw/vnc/init.c index a166358..be9ffb3 100644 --- a/hw/vnc/init.c +++ b/hw/vnc/init.c @@ -138,7 +138,7 @@ static void rfbCrossScreen(ScreenPtr pScreen, Bool entering); static void -PointerWarpCursor(ScreenPtr pScreen, int x, int y) +PointerWarpCursor(DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y) { #if 0 DeviceIntPtr pDev = NULL; @@ -774,11 +774,10 @@ InitInput(argc, argv) int argc; char *argv[]; { - DeviceIntPtr p, k; - k = AddInputDevice(rfbKeybdProc, TRUE); - p = AddInputDevice(rfbMouseProc, TRUE); - RegisterKeyboardDevice(k); - RegisterPointerDevice(p); + kbdDevice = AddInputDevice(serverClient, rfbKeybdProc, TRUE); + ptrDevice = AddInputDevice(serverClient, rfbMouseProc, TRUE); + RegisterKeyboardDevice(kbdDevice); + RegisterPointerDevice(ptrDevice); mieqInit(); @@ -843,7 +842,6 @@ rfbMouseProc(pDevice, onoff) map[4] = 4; map[5] = 5; InitPointerDeviceStruct(pDev, map, 5, - GetMotionHistory, PtrDeviceControl, GetMaximumEventsNum(), 2 /* numAxes */); vncSetPointerDevice(pDevice); diff --git a/hw/vnc/kbdptr.c b/hw/vnc/kbdptr.c index de31920..e5b7ee7 100644 --- a/hw/vnc/kbdptr.c +++ b/hw/vnc/kbdptr.c @@ -49,7 +49,7 @@ static void vncXConvertCase(KeySym sym, KeySym *lower, KeySym *upper); -static DeviceIntPtr ptrDevice = NULL, kbdDevice = NULL; +DeviceIntPtr ptrDevice = NULL, kbdDevice = NULL; void @@ -74,7 +74,7 @@ vncSetPointerDevice(DeviceIntPtr ptr) static void EnqueueMotion(DeviceIntPtr ptrDev, int x, int y) { - xEvent *events = (xEvent*) calloc(sizeof(xEvent), GetMaximumEventsNum()); + EventListPtr events; int detail = 0, valuators[2], nevents, i; valuators[0] = x; valuators[1] = y; @@ -82,11 +82,11 @@ EnqueueMotion(DeviceIntPtr ptrDev, int x, int y) ErrorF("VNC: In EnqueueMotion() ptrDev=NULL\n"); return; } + GetEventList(&events); nevents = GetPointerEvents(events, ptrDev, MotionNotify, detail, POINTER_ABSOLUTE, 0, 2, valuators); for (i = 0; i < nevents; i++) - mieqEnqueue(ptrDev, events + i); - free(events); + mieqEnqueue(ptrDev, (events + i)->event); } #endif @@ -94,33 +94,33 @@ EnqueueMotion(DeviceIntPtr ptrDev, int x, int y) static void EnqueueButton(DeviceIntPtr ptrDev, int type, int detail) { - xEvent *events = (xEvent*) calloc(sizeof(xEvent), GetMaximumEventsNum()); + EventListPtr events; int nevents, i; if (!ptrDev) { ErrorF("VNC: In EnqueueButton() ptrDev=NULL\n"); return; } + GetEventList(&events); nevents = GetPointerEvents(events, ptrDev, type, detail, POINTER_ABSOLUTE, 0, 0, NULL/*valuators*/); for (i = 0; i < nevents; i++) - mieqEnqueue(ptrDev, events + i); - free(events); + mieqEnqueue(ptrDev, (events + i)->event); } static void EnqueueKey(DeviceIntPtr kbdDev, int type, int detail) { - xEvent *events = (xEvent*) calloc(sizeof(xEvent), GetMaximumEventsNum()); + EventListPtr events; int nevents, i; if (!kbdDev) { ErrorF("VNC: In EnqueueKey() kbdDev=NULL\n"); return; } + GetEventList(&events); nevents = GetKeyboardEvents(events, kbdDev, type, detail); for (i = 0; i < nevents; i++) - mieqEnqueue(kbdDev, events + i); - free(events); + mieqEnqueue(kbdDev, (events + i)->event); } @@ -256,7 +256,7 @@ KbdAddEvent(Bool down, KeySym keySym, rfbClientPtr cl) shiftMustBePressed = TRUE; } - SendMappingNotify(MappingKeyboard, keyCode, 1, serverClient); + SendMappingNotify(kbdDevice, MappingKeyboard, keyCode, 1, serverClient); ErrorF("KbdAddEvent: unknown KeySym 0x%x - allocating KeyCode %d\n", (int)keySym, keyCode); diff --git a/hw/vnc/rfb.h b/hw/vnc/rfb.h index 8a6d1ec..2077f96 100644 --- a/hw/vnc/rfb.h +++ b/hw/vnc/rfb.h @@ -582,6 +582,9 @@ extern void rfbGotXCutText(char *str, int len); extern Bool compatibleKbd; extern unsigned char ptrAcceleration; +extern DeviceIntPtr ptrDevice; +extern DeviceIntPtr kbdDevice; + extern void PtrDeviceInit(void); extern void PtrDeviceOn(DeviceIntPtr pDev); extern void PtrDeviceOff(void); diff --git a/hw/vnc/rfbmouse.c b/hw/vnc/rfbmouse.c index 40e6ec6..ccbda94 100644 --- a/hw/vnc/rfbmouse.c +++ b/hw/vnc/rfbmouse.c @@ -120,7 +120,6 @@ xf86rfbMouseControlProc(DeviceIntPtr device, int onoff) map[4] = 4; map[5] = 5; InitPointerDeviceStruct(pDev, map, 5, - func1, PtrDeviceControl, (*func2)(), 2); break; diff --git a/hw/vnc/rfbserver.c b/hw/vnc/rfbserver.c index b93087f..f22dedf 100644 --- a/hw/vnc/rfbserver.c +++ b/hw/vnc/rfbserver.c @@ -1122,8 +1122,9 @@ rfbProcessClientNormalMessage(cl) { int x, y; - miPointerPosition(&x, &y); /*XXX deprecated*/ - (*pVNC->spriteFuncs->SetCursor)(cl->pScreen, pVNC->pCurs, x, y); + miPointerGetPosition(ptrDevice, &x, &y); + (*pVNC->spriteFuncs->SetCursor)(ptrDevice, cl->pScreen, + pVNC->pCurs, x, y); } #endif diff --git a/hw/vnc/sprite.c b/hw/vnc/sprite.c index c1e8685..08bd7ac 100644 --- a/hw/vnc/sprite.c +++ b/hw/vnc/sprite.c @@ -289,23 +289,33 @@ static GCOps rfbSpriteGCOps = { * pointer-sprite method table */ -static Bool rfbSpriteRealizeCursor (ScreenPtr pScreen, CursorPtr pCursor); -static Bool rfbSpriteUnrealizeCursor (ScreenPtr pScreen, CursorPtr pCursor); -static void rfbSpriteSetCursor (ScreenPtr pScreen, CursorPtr pCursor, int x, int y); -static void rfbSpriteMoveCursor (ScreenPtr pScreen, int x, int y); +static Bool rfbSpriteRealizeCursor (DeviceIntPtr pDev, ScreenPtr pScreen, + CursorPtr pCursor); +static Bool rfbSpriteUnrealizeCursor (DeviceIntPtr pDev, ScreenPtr pScreen, + CursorPtr pCursor); +static void rfbSpriteSetCursor (DeviceIntPtr pDev, ScreenPtr pScreen, + CursorPtr pCursor, int x, int y); +static void rfbSpriteMoveCursor (DeviceIntPtr pDev, ScreenPtr pScreen, + int x, int y); +static Bool rfbSpriteDeviceCursorInitialize (DeviceIntPtr pDev, + ScreenPtr pScreen); +static void rfbSpriteDeviceCursorCleanup (DeviceIntPtr pDev, ScreenPtr pScreen); miPointerSpriteFuncRec rfbSpritePointerFuncs = { rfbSpriteRealizeCursor, rfbSpriteUnrealizeCursor, rfbSpriteSetCursor, rfbSpriteMoveCursor, + rfbSpriteDeviceCursorInitialize, + rfbSpriteDeviceCursorCleanup, }; /* * other misc functions */ -static Bool rfbDisplayCursor (ScreenPtr pScreen, CursorPtr pCursor); +static Bool rfbDisplayCursor (DeviceIntPtr pDev, ScreenPtr pScreen, + CursorPtr pCursor); /* @@ -1963,7 +1973,7 @@ rfbSpriteLineHelper() #define SPRITE_PAD 8 static Bool -rfbSpriteRealizeCursor (ScreenPtr pScreen, CursorPtr pCursor) +rfbSpriteRealizeCursor (DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor) { rfbSpriteScreenPtr pScreenPriv; @@ -1975,7 +1985,8 @@ rfbSpriteRealizeCursor (ScreenPtr pScreen, CursorPtr pCursor) } static Bool -rfbSpriteUnrealizeCursor (ScreenPtr pScreen, CursorPtr pCursor) +rfbSpriteUnrealizeCursor (DeviceIntPtr pDev, ScreenPtr pScreen, + CursorPtr pCursor) { rfbSpriteScreenPtr pScreenPriv; @@ -1985,7 +1996,8 @@ rfbSpriteUnrealizeCursor (ScreenPtr pScreen, CursorPtr pCursor) } static void -rfbSpriteSetCursor (ScreenPtr pScreen, CursorPtr pCursor, int x, int y) +rfbSpriteSetCursor (DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor, + int x, int y) { rfbSpriteScreenPtr pScreenPriv; rfbClientPtr cl, nextCl; @@ -2052,14 +2064,14 @@ rfbSpriteSetCursor (ScreenPtr pScreen, CursorPtr pCursor, int x, int y) pScreenPriv->saved.y1 -= dy; pScreenPriv->saved.x2 -= dx; pScreenPriv->saved.y2 -= dy; - (void) (*pScreenPriv->funcs->ChangeSave) (pScreen, + (void) (*pScreenPriv->funcs->ChangeSave) (pDev, pScreen, pScreenPriv->saved.x1, pScreenPriv->saved.y1, pScreenPriv->saved.x2 - pScreenPriv->saved.x1, pScreenPriv->saved.y2 - pScreenPriv->saved.y1, dx, dy); } - (void) (*pScreenPriv->funcs->MoveCursor) (pScreen, pCursor, + (void) (*pScreenPriv->funcs->MoveCursor) (pDev, pScreen, pCursor, pScreenPriv->saved.x1, pScreenPriv->saved.y1, pScreenPriv->saved.x2 - pScreenPriv->saved.x1, @@ -2101,13 +2113,13 @@ rfbSpriteSetCursor (ScreenPtr pScreen, CursorPtr pCursor, int x, int y) } static void -rfbSpriteMoveCursor (ScreenPtr pScreen, int x, int y) +rfbSpriteMoveCursor (DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y) { rfbSpriteScreenPtr pScreenPriv; pScreenPriv = (rfbSpriteScreenPtr)dixLookupPrivate(&pScreen->devPrivates, rfbSpriteScreenKey); - rfbSpriteSetCursor (pScreen, pScreenPriv->pCursor, x, y); + rfbSpriteSetCursor (pDev, pScreen, pScreenPriv->pCursor, x, y); } /* @@ -2130,7 +2142,7 @@ rfbSpriteRemoveCursor (pScreen) pVNC->dontSendFramebufferUpdate = TRUE; pVNC->cursorIsDrawn = FALSE; pScreenPriv->pCacheWin = NullWindow; - if (!(*pScreenPriv->funcs->RestoreUnderCursor) (pScreen, + if (!(*pScreenPriv->funcs->RestoreUnderCursor) (ptrDevice, pScreen, pScreenPriv->saved.x1, pScreenPriv->saved.y1, pScreenPriv->saved.x2 - pScreenPriv->saved.x1, @@ -2164,7 +2176,7 @@ rfbSpriteRestoreCursor (pScreen) x = pScreenPriv->x - (int)pCursor->bits->xhot; y = pScreenPriv->y - (int)pCursor->bits->yhot; - if ((*pScreenPriv->funcs->SaveUnderCursor) (pScreen, + if ((*pScreenPriv->funcs->SaveUnderCursor) (ptrDevice, pScreen, pScreenPriv->saved.x1, pScreenPriv->saved.y1, pScreenPriv->saved.x2 - pScreenPriv->saved.x1, @@ -2172,7 +2184,7 @@ rfbSpriteRestoreCursor (pScreen) { if (pScreenPriv->checkPixels) rfbSpriteFindColors (pScreen); - if ((*pScreenPriv->funcs->PutUpCursor) (pScreen, pCursor, x, y, + if ((*pScreenPriv->funcs->PutUpCursor) (ptrDevice, pScreen, pCursor, x, y, pScreenPriv->colors[SOURCE_COLOR].pixel, pScreenPriv->colors[MASK_COLOR].pixel)) pVNC->cursorIsDrawn = TRUE; @@ -2215,7 +2227,8 @@ rfbSpriteComputeSaved (pScreen) */ static Bool -rfbDisplayCursor(pScreen, pCursor) +rfbDisplayCursor(pDev, pScreen, pCursor) + DeviceIntPtr pDev; ScreenPtr pScreen; CursorPtr pCursor; { @@ -2230,7 +2243,7 @@ rfbDisplayCursor(pScreen, pCursor) pPriv = (rfbSpriteScreenPtr)dixLookupPrivate(&pScreen->devPrivates, rfbSpriteScreenKey); - status = (*pPriv->DisplayCursor)(pScreen, pCursor); + status = (*pPriv->DisplayCursor)(pDev, pScreen, pCursor); /* send new cursor shape to interested viewers */ for (cl = rfbClientHead; cl ; cl = cl->next) { @@ -2277,3 +2290,14 @@ rfbSpriteGetCursorPos (pScreen, px, py) *py = pScreenPriv->y; } +static Bool +rfbSpriteDeviceCursorInitialize (DeviceIntPtr pDev, ScreenPtr pScreen) +{ + return TRUE; +} + +static void +rfbSpriteDeviceCursorCleanup (DeviceIntPtr pDev, ScreenPtr pScreen) +{ + return; +} diff --git a/hw/vnc/sprite.h b/hw/vnc/sprite.h index ed34726..22a84f6 100644 --- a/hw/vnc/sprite.h +++ b/hw/vnc/sprite.h @@ -61,6 +61,7 @@ typedef struct { CursorPtr /*pCursor*/ ); Bool (*PutUpCursor)( + DeviceIntPtr /*pDev*/, ScreenPtr /*pScreen*/, CursorPtr /*pCursor*/, int /*x*/, @@ -69,6 +70,7 @@ typedef struct { unsigned long /*mask*/ ); Bool (*SaveUnderCursor)( + DeviceIntPtr /*pDev*/, ScreenPtr /*pScreen*/, int /*x*/, int /*y*/, @@ -76,6 +78,7 @@ typedef struct { int /*h*/ ); Bool (*RestoreUnderCursor)( + DeviceIntPtr /*pDev*/, ScreenPtr /*pScreen*/, int /*x*/, int /*y*/, @@ -83,6 +86,7 @@ typedef struct { int /*h*/ ); Bool (*MoveCursor)( + DeviceIntPtr /*pDev*/, ScreenPtr /*pScreen*/, CursorPtr /*pCursor*/, int /*x*/, @@ -95,6 +99,7 @@ typedef struct { unsigned long /*mask*/ ); Bool (*ChangeSave)( + DeviceIntPtr /*pDev*/, ScreenPtr /*pScreen*/, int /*x*/, int /*y*/, @@ -104,6 +109,16 @@ typedef struct { int /*dy*/ ); + Bool (*DeviceCursorInitialize)( + DeviceIntPtr /*pDev*/, + ScreenPtr /*pScreen*/ +); + + void (*DeviceCursorCleanup)( + DeviceIntPtr /*pDev*/, + ScreenPtr /*pScreen*/ +); + } rfbSpriteCursorFuncRec, *rfbSpriteCursorFuncPtr; extern Bool rfbSpriteInitialize( diff --git a/hw/vnc/vncext.c b/hw/vnc/vncext.c index 80a3433..1eb7644 100644 --- a/hw/vnc/vncext.c +++ b/hw/vnc/vncext.c @@ -514,8 +514,8 @@ GenerateVncConnectedEvent(int sock) else conn.ipaddress = (CARD32)peer.sin_addr.s_addr; - (void) TryClientEvents(pn->client, (xEventPtr)&conn, 1, NoEventMask, - NoEventMask, NullGrab); + (void) TryClientEvents(pn->client, NULL, (xEventPtr)&conn, 1, + NoEventMask, NoEventMask, NullGrab); } pn = pn->next; } @@ -557,8 +557,8 @@ GenerateVncChromiumConnectedEvent(int sock) else conn.ipaddress = (CARD32)peer.sin_addr.s_addr; - (void) TryClientEvents(pn->client, (xEventPtr)&conn, 1, NoEventMask, - NoEventMask, NullGrab); + (void) TryClientEvents(pn->client, NULL, (xEventPtr)&conn, 1, + NoEventMask, NoEventMask, NullGrab); } pn = pn->next; } @@ -586,8 +586,8 @@ GenerateVncDisconnectedEvent(int sock) conn.type = VncEventBase + XVncDisconnected; conn.sequenceNumber = pn->client->sequence; conn.connected = sock; - (void) TryClientEvents(pn->client, (xEventPtr)&conn, 1, NoEventMask, - NoEventMask, NullGrab); + (void) TryClientEvents(pn->client, NULL, (xEventPtr)&conn, 1, + NoEventMask, NoEventMask, NullGrab); } pn = pn->next; } diff --git a/hw/xfree86/vnc/vncInit.c b/hw/xfree86/vnc/vncInit.c index e07ac8f..221f018 100644 --- a/hw/xfree86/vnc/vncInit.c +++ b/hw/xfree86/vnc/vncInit.c @@ -56,11 +56,11 @@ static unsigned long VNCGeneration = 0; static const OptionInfoRec *VNCAvailableOptions(void *unused); static void rfbWakeupHandler (int i, pointer blockData, unsigned long err, pointer pReadmask); -static Bool vncCursorRealizeCursor(ScreenPtr, CursorPtr); -static Bool vncCursorUnrealizeCursor(ScreenPtr, CursorPtr); -static void vncCursorSetCursor(ScreenPtr, CursorPtr, int, int); -static void vncCursorMoveCursor(ScreenPtr, int, int); -static Bool vncDisplayCursor(ScreenPtr, CursorPtr); +static Bool vncCursorRealizeCursor(DeviceIntPtr, ScreenPtr, CursorPtr); +static Bool vncCursorUnrealizeCursor(DeviceIntPtr, ScreenPtr, CursorPtr); +static void vncCursorSetCursor(DeviceIntPtr, ScreenPtr, CursorPtr, int, int); +static void vncCursorMoveCursor(DeviceIntPtr, ScreenPtr, int, int); +static Bool vncDisplayCursor(DeviceIntPtr, ScreenPtr, CursorPtr); static miPointerSpriteFuncRec vncCursorSpriteFuncs = { vncCursorRealizeCursor, @@ -389,23 +389,24 @@ VNCInit(ScreenPtr pScreen, unsigned char *FBStart) /****** miPointerSpriteFunctions *******/ static Bool -vncCursorRealizeCursor(ScreenPtr pScreen, CursorPtr pCurs) +vncCursorRealizeCursor(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCurs) { vncScreenPtr pScreenPriv = VNCPTR(pScreen); - return (*pScreenPriv->spriteFuncs->RealizeCursor)(pScreen, pCurs); + return (*pScreenPriv->spriteFuncs->RealizeCursor)(pDev, pScreen, pCurs); } static Bool -vncCursorUnrealizeCursor(ScreenPtr pScreen, CursorPtr pCurs) +vncCursorUnrealizeCursor(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCurs) { vncScreenPtr pScreenPriv = VNCPTR(pScreen); - return (*pScreenPriv->spriteFuncs->UnrealizeCursor)(pScreen, pCurs); + return (*pScreenPriv->spriteFuncs->UnrealizeCursor)(pDev, pScreen, pCurs); } static void -vncCursorSetCursor(ScreenPtr pScreen, CursorPtr pCurs, int x, int y) +vncCursorSetCursor(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCurs, + int x, int y) { vncScreenPtr pScreenPriv = VNCPTR(pScreen); @@ -426,11 +427,11 @@ vncCursorSetCursor(ScreenPtr pScreen, CursorPtr pCurs, int x, int y) pScreenPriv->cursorIsDrawn = TRUE; #endif - (*pScreenPriv->spriteFuncs->SetCursor)(pScreen, pCurs, x, y); + (*pScreenPriv->spriteFuncs->SetCursor)(pDev, pScreen, pCurs, x, y); } static void -vncCursorMoveCursor(ScreenPtr pScreen, int x, int y) +vncCursorMoveCursor(DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y) { vncScreenPtr pScreenPriv = VNCPTR(pScreen); rfbClientPtr cl; @@ -440,7 +441,7 @@ vncCursorMoveCursor(ScreenPtr pScreen, int x, int y) cl->cursorWasMoved = TRUE; } - (*pScreenPriv->spriteFuncs->MoveCursor)(pScreen, x, y); + (*pScreenPriv->spriteFuncs->MoveCursor)(pDev, pScreen, x, y); } Bool @@ -505,7 +506,8 @@ vncUseHWCursorARGB(pScreen, pCursor) #endif static Bool -vncDisplayCursor(pScreen, pCursor) +vncDisplayCursor(pDev, pScreen, pCursor) + DeviceIntPtr pDev; ScreenPtr pScreen; CursorPtr pCursor; { @@ -520,7 +522,7 @@ vncDisplayCursor(pScreen, pCursor) cl->cursorWasChanged = TRUE; } - ret = (*pScreen->DisplayCursor)(pScreen, pCursor); + ret = (*pScreen->DisplayCursor)(pDev, pScreen, pCursor); pScreen->DisplayCursor = vncDisplayCursor; -- 1.6.1