Bugzilla – Attachment 302436 Details for
Bug 508553
xorg-x11-Xvnc is still missing on 11.2
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
IDP Log In
|
Forgot Password
[patch]
Build + runtime fixes for VNC
xorg-server-xf4vnc-fix.diff (text/plain), 19.81 KB, created by
Matthias Hopf
on 2009-07-02 14:13:34 UTC
(
hide
)
Description:
Build + runtime fixes for VNC
Filename:
MIME Type:
Creator:
Matthias Hopf
Created:
2009-07-02 14:13:34 UTC
Size:
19.81 KB
patch
obsolete
>Index: xorg-server-1.6.1/hw/vnc/cutpaste.c >=================================================================== >--- xorg-server-1.6.1.orig/hw/vnc/cutpaste.c >+++ xorg-server-1.6.1/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); > } >Index: xorg-server-1.6.1/hw/vnc/kbdptr.c >=================================================================== >--- xorg-server-1.6.1.orig/hw/vnc/kbdptr.c >+++ xorg-server-1.6.1/hw/vnc/kbdptr.c >@@ -74,19 +74,26 @@ vncSetPointerDevice(DeviceIntPtr ptr) > static void > EnqueueMotion(DeviceIntPtr ptrDev, int x, int y) > { >- xEvent *events = (xEvent*) calloc(sizeof(xEvent), GetMaximumEventsNum()); >+ int maxEventsNum = GetMaximumEventsNum(); >+ xEvent *events = (xEvent*) calloc(sizeof(xEvent), maxEventsNum); >+ EventListPtr evls= calloc(sizeof(EventList), maxEventsNum); > int detail = 0, valuators[2], nevents, i; > valuators[0] = x; > valuators[1] = y; >+ for (i = 0; i < maxEventsNum; i++) { >+ evls[i].event = &events[i]; >+ evls[i].evlen = sizeof(xEvent); >+ } > if (!ptrDev) { > ErrorF("VNC: In EnqueueMotion() ptrDev=NULL\n"); > return; > } >- nevents = GetPointerEvents(events, ptrDev, MotionNotify, detail, >+ nevents = GetPointerEvents(evls, ptrDev, MotionNotify, detail, > POINTER_ABSOLUTE, 0, 2, valuators); > for (i = 0; i < nevents; i++) > mieqEnqueue(ptrDev, events + i); > free(events); >+ free(evls); > } > #endif > >@@ -94,33 +101,47 @@ EnqueueMotion(DeviceIntPtr ptrDev, int x > static void > EnqueueButton(DeviceIntPtr ptrDev, int type, int detail) > { >- xEvent *events = (xEvent*) calloc(sizeof(xEvent), GetMaximumEventsNum()); >+ int maxEventsNum = GetMaximumEventsNum(); >+ xEvent *events = (xEvent*) calloc(sizeof(xEvent), maxEventsNum); >+ EventListPtr evls= calloc(sizeof(EventList), maxEventsNum); > int nevents, i; >+ for (i = 0; i < maxEventsNum; i++) { >+ evls[i].event = &events[i]; >+ evls[i].evlen = sizeof(xEvent); >+ } > if (!ptrDev) { > ErrorF("VNC: In EnqueueButton() ptrDev=NULL\n"); > return; > } >- nevents = GetPointerEvents(events, ptrDev, type, detail, >+ nevents = GetPointerEvents(evls, ptrDev, type, detail, > POINTER_ABSOLUTE, 0, 0, NULL/*valuators*/); > for (i = 0; i < nevents; i++) > mieqEnqueue(ptrDev, events + i); > free(events); >+ free(evls); > } > > > static void > EnqueueKey(DeviceIntPtr kbdDev, int type, int detail) > { >- xEvent *events = (xEvent*) calloc(sizeof(xEvent), GetMaximumEventsNum()); >+ int maxEventsNum = GetMaximumEventsNum(); >+ xEvent *events = (xEvent*) calloc(sizeof(xEvent), maxEventsNum); >+ EventListPtr evls= calloc(sizeof(EventList), maxEventsNum); > int nevents, i; >+ for (i = 0; i < maxEventsNum; i++) { >+ evls[i].event = &events[i]; >+ evls[i].evlen = sizeof(xEvent); >+ } > if (!kbdDev) { > ErrorF("VNC: In EnqueueKey() kbdDev=NULL\n"); > return; > } >- nevents = GetKeyboardEvents(events, kbdDev, type, detail); >+ nevents = GetKeyboardEvents(evls, kbdDev, type, detail); > for (i = 0; i < nevents; i++) > mieqEnqueue(kbdDev, events + i); > free(events); >+ free(evls); > } > > >@@ -256,7 +277,7 @@ KbdAddEvent(Bool down, KeySym keySym, rf > 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); >Index: xorg-server-1.6.1/hw/vnc/rfbkeyb.c >=================================================================== >--- xorg-server-1.6.1.orig/hw/vnc/rfbkeyb.c >+++ xorg-server-1.6.1/hw/vnc/rfbkeyb.c >@@ -388,7 +388,7 @@ static XF86ModuleVersionInfo xf86rfbKeyb > "xf4vnc Project, see http://xf4vnc.sf.net", > MODINFOSTRING1, > MODINFOSTRING2, >- XF86_VERSION_CURRENT, >+ XORG_VERSION_CURRENT, > 1, 0, 0, > ABI_CLASS_XINPUT, > ABI_XINPUT_VERSION, >Index: xorg-server-1.6.1/hw/vnc/rfbmouse.c >=================================================================== >--- xorg-server-1.6.1.orig/hw/vnc/rfbmouse.c >+++ xorg-server-1.6.1/hw/vnc/rfbmouse.c >@@ -98,10 +98,12 @@ xf86rfbMouseControlProc(DeviceIntPtr dev > void *func1; > int (*func2)(void); > >+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 3 > if (LoaderSymbol("GetMotionHistory")) > func1 = LoaderSymbol("GetMotionHistory"); > else > func1 = LoaderSymbol("miPointerGetMotionEvents"); >+#endif > > if (LoaderSymbol("GetMotionHistorySize")) > func2 = LoaderSymbol("GetMotionHistorySize"); >@@ -120,7 +122,9 @@ xf86rfbMouseControlProc(DeviceIntPtr dev > map[4] = 4; > map[5] = 5; > InitPointerDeviceStruct(pDev, map, 5, >+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 3 > func1, >+#endif > PtrDeviceControl, > (*func2)(), 2); > break; >@@ -243,7 +247,7 @@ static XF86ModuleVersionInfo xf86rfbMous > "xf4vnc Project, see http://xf4vnc.sf.net", > MODINFOSTRING1, > MODINFOSTRING2, >- XF86_VERSION_CURRENT, >+ XORG_VERSION_CURRENT, > 1, 0, 0, > ABI_CLASS_XINPUT, > ABI_XINPUT_VERSION, >Index: xorg-server-1.6.1/hw/vnc/rfbserver.c >=================================================================== >--- xorg-server-1.6.1.orig/hw/vnc/rfbserver.c >+++ xorg-server-1.6.1/hw/vnc/rfbserver.c >@@ -1122,8 +1122,8 @@ rfbProcessClientNormalMessage(cl) > > { > int x, y; >- miPointerPosition(&x, &y); /*XXX deprecated*/ >- (*pVNC->spriteFuncs->SetCursor)(cl->pScreen, pVNC->pCurs, x, y); >+ miPointerGetPosition(inputInfo.pointer, &x, &y); >+ (*pVNC->spriteFuncs->SetCursor)(inputInfo.pointer, cl->pScreen, pVNC->pCurs, x, y); > } > #endif > >Index: xorg-server-1.6.1/hw/vnc/sprite.c >=================================================================== >--- xorg-server-1.6.1.orig/hw/vnc/sprite.c >+++ xorg-server-1.6.1/hw/vnc/sprite.c >@@ -112,7 +112,8 @@ static void rfbSpriteSaveDoomedAreas > static RegionPtr rfbSpriteRestoreAreas(WindowPtr pWin, RegionPtr pRgnExposed); > static void rfbSpriteComputeSaved(ScreenPtr pScreen); > >-static DevPrivateKey rfbSpriteScreenKey = &rfbSpriteScreenKey; >+static int rfbSpriteScreenKeyStore; >+static DevPrivateKey rfbSpriteScreenKey = &rfbSpriteScreenKeyStore; > > #define SCREEN_PROLOGUE(pScreen, field) ((pScreen)->field = \ > ((rfbSpriteScreenPtr)dixLookupPrivate(&(pScreen)->devPrivates, \ >@@ -144,7 +145,8 @@ static GCFuncs rfbSpriteGCFuncs = { > rfbSpriteCopyClip, > }; > >-static DevPrivateKey rfbSpriteGCKey = &rfbSpriteGCKey; >+static int rfbSpriteGCKeyStore; >+static DevPrivateKey rfbSpriteGCKey = &rfbSpriteGCKeyStore; > > #define GC_FUNC_PROLOGUE(pGC) \ > rfbSpriteGCPtr pGCPriv = \ >@@ -289,23 +291,27 @@ 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 rfbSpriteInitializeCursor (DeviceIntPtr pDev, ScreenPtr pScreen); >+static void rfbSpriteCleanupCursor (DeviceIntPtr pDev, ScreenPtr pScreen); > > miPointerSpriteFuncRec rfbSpritePointerFuncs = { > rfbSpriteRealizeCursor, > rfbSpriteUnrealizeCursor, > rfbSpriteSetCursor, > rfbSpriteMoveCursor, >+ rfbSpriteInitializeCursor, >+ rfbSpriteCleanupCursor, > }; > > /* > * other misc functions > */ > >-static Bool rfbDisplayCursor (ScreenPtr pScreen, CursorPtr pCursor); >+static Bool rfbDisplayCursor (DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor); > > > /* >@@ -1963,7 +1969,7 @@ rfbSpriteLineHelper() > #define SPRITE_PAD 8 > > static Bool >-rfbSpriteRealizeCursor (ScreenPtr pScreen, CursorPtr pCursor) >+rfbSpriteRealizeCursor (DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor) > { > rfbSpriteScreenPtr pScreenPriv; > >@@ -1975,7 +1981,7 @@ rfbSpriteRealizeCursor (ScreenPtr pScree > } > > static Bool >-rfbSpriteUnrealizeCursor (ScreenPtr pScreen, CursorPtr pCursor) >+rfbSpriteUnrealizeCursor (DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor) > { > rfbSpriteScreenPtr pScreenPriv; > >@@ -1985,7 +1991,7 @@ rfbSpriteUnrealizeCursor (ScreenPtr pScr > } > > 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; >@@ -2101,13 +2107,24 @@ rfbSpriteSetCursor (ScreenPtr pScreen, C > } > > 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); >+} >+ >+static Bool >+rfbSpriteInitializeCursor (DeviceIntPtr pDev, ScreenPtr pScreen) >+{ >+ return TRUE; >+} >+ >+static void >+rfbSpriteCleanupCursor (DeviceIntPtr pDev, ScreenPtr pScreen) >+{ > } > > /* >@@ -2215,9 +2232,7 @@ rfbSpriteComputeSaved (pScreen) > */ > > static Bool >-rfbDisplayCursor(pScreen, pCursor) >- ScreenPtr pScreen; >- CursorPtr pCursor; >+rfbDisplayCursor(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor) > { > rfbClientPtr cl; > rfbSpriteScreenPtr pPriv; >@@ -2230,7 +2245,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) { >Index: xorg-server-1.6.1/hw/xfree86/vnc/vncInit.c >=================================================================== >--- xorg-server-1.6.1.orig/hw/xfree86/vnc/vncInit.c >+++ xorg-server-1.6.1/hw/xfree86/vnc/vncInit.c >@@ -35,7 +35,7 @@ > #include "xf86.h" > #include "xf86_OSproc.h" > #include "xf86Resources.h" >-#include "xf86Version.h" >+#include "xorgVersion.h" > > int vncScreenPrivateIndex = -1; > int inetdSock = -1; >@@ -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,23 @@ VNCInit(ScreenPtr pScreen, unsigned char > /****** 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 +426,11 @@ vncCursorSetCursor(ScreenPtr pScreen, Cu > 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 +440,7 @@ vncCursorMoveCursor(ScreenPtr pScreen, i > cl->cursorWasMoved = TRUE; > } > >- (*pScreenPriv->spriteFuncs->MoveCursor)(pScreen, x, y); >+ (*pScreenPriv->spriteFuncs->MoveCursor)(pDev, pScreen, x, y); > } > > Bool >@@ -505,9 +505,7 @@ vncUseHWCursorARGB(pScreen, pCursor) > #endif > > static Bool >-vncDisplayCursor(pScreen, pCursor) >- ScreenPtr pScreen; >- CursorPtr pCursor; >+vncDisplayCursor(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor) > { > vncScreenPtr pScreenPriv = VNCPTR(pScreen); > rfbClientPtr cl; >@@ -520,7 +518,7 @@ vncDisplayCursor(pScreen, pCursor) > cl->cursorWasChanged = TRUE; > } > >- ret = (*pScreen->DisplayCursor)(pScreen, pCursor); >+ ret = (*pScreen->DisplayCursor)(pDev, pScreen, pCursor); > > pScreen->DisplayCursor = vncDisplayCursor; > >Index: xorg-server-1.6.1/hw/vnc/vncext.c >=================================================================== >--- xorg-server-1.6.1.orig/hw/vnc/vncext.c >+++ xorg-server-1.6.1/hw/vnc/vncext.c >@@ -36,8 +36,9 @@ > #include <arpa/inet.h> > #include <netdb.h> > >-DevPrivateKey vncCreateScreenResourcesKey = &vncCreateScreenResourcesKey; >-DevPrivateKey rfbGCKey = &rfbGCKey; >+static int vncCreateScreenResourcesKeyStore, rfbGCKeyStore; >+DevPrivateKey vncCreateScreenResourcesKey = &vncCreateScreenResourcesKeyStore; >+DevPrivateKey rfbGCKey = &rfbGCKeyStore; > > int VncSelectNotify(ClientPtr client, BOOL onoff); > void VncExtensionInit(void); >@@ -514,7 +515,7 @@ GenerateVncConnectedEvent(int sock) > else > conn.ipaddress = (CARD32)peer.sin_addr.s_addr; > >- (void) TryClientEvents(pn->client, (xEventPtr)&conn, 1, NoEventMask, >+ (void) TryClientEvents(pn->client, NULL, (xEventPtr)&conn, 1, NoEventMask, > NoEventMask, NullGrab); > } > pn = pn->next; >@@ -557,7 +558,7 @@ GenerateVncChromiumConnectedEvent(int so > else > conn.ipaddress = (CARD32)peer.sin_addr.s_addr; > >- (void) TryClientEvents(pn->client, (xEventPtr)&conn, 1, NoEventMask, >+ (void) TryClientEvents(pn->client, NULL, (xEventPtr)&conn, 1, NoEventMask, > NoEventMask, NullGrab); > } > pn = pn->next; >@@ -586,7 +587,7 @@ GenerateVncDisconnectedEvent(int sock) > conn.type = VncEventBase + XVncDisconnected; > conn.sequenceNumber = pn->client->sequence; > conn.connected = sock; >- (void) TryClientEvents(pn->client, (xEventPtr)&conn, 1, NoEventMask, >+ (void) TryClientEvents(pn->client, NULL, (xEventPtr)&conn, 1, NoEventMask, > NoEventMask, NullGrab); > } > pn = pn->next; >Index: xorg-server-1.6.1/hw/vnc/cursor.c >=================================================================== >--- xorg-server-1.6.1.orig/hw/vnc/cursor.c >+++ xorg-server-1.6.1/hw/vnc/cursor.c >@@ -262,7 +262,7 @@ rfbSendCursorPos(cl, pScreen) > > #if XFREE86VNC > if (pScreen == pCursorScreen) >- miPointerPosition(&x, &y); >+ miPointerGetPosition(inputInfo.pointer, &x, &y); > #else > rfbSpriteGetCursorPos(pScreen, &x, &y); > #endif >Index: xorg-server-1.6.1/hw/vnc/init.c >=================================================================== >--- xorg-server-1.6.1.orig/hw/vnc/init.c >+++ xorg-server-1.6.1/hw/vnc/init.c >@@ -138,7 +138,7 @@ static void rfbCrossScreen(ScreenPtr pSc > > > static void >-PointerWarpCursor(ScreenPtr pScreen, int x, int y) >+PointerWarpCursor(DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y) > { > #if 0 > DeviceIntPtr pDev = NULL; >@@ -775,8 +775,8 @@ InitInput(argc, argv) > char *argv[]; > { > DeviceIntPtr p, k; >- k = AddInputDevice(rfbKeybdProc, TRUE); >- p = AddInputDevice(rfbMouseProc, TRUE); >+ k = AddInputDevice(serverClient, rfbKeybdProc, TRUE); >+ p = AddInputDevice(serverClient, rfbMouseProc, TRUE); > RegisterKeyboardDevice(k); > RegisterPointerDevice(p); > >@@ -843,7 +843,6 @@ rfbMouseProc(pDevice, onoff) > map[4] = 4; > map[5] = 5; > InitPointerDeviceStruct(pDev, map, 5, >- GetMotionHistory, > PtrDeviceControl, > GetMaximumEventsNum(), 2 /* numAxes */); > vncSetPointerDevice(pDevice); >Index: xorg-server-1.6.1/hw/vnc/dispcur.c >=================================================================== >--- xorg-server-1.6.1.orig/hw/vnc/dispcur.c >+++ xorg-server-1.6.1/hw/vnc/dispcur.c >@@ -74,7 +74,10 @@ in this Software without prior written a > > /* per-screen private data */ > >-static DevPrivateKey rfbDCScreenKey = &rfbDCScreenKey; >+static int rfbDCScreenKeyStore; >+static DevPrivateKey rfbDCScreenKey = &rfbDCScreenKeyStore; >+static int rfbScreenKeyStore; >+static DevPrivateKey rfbScreenKey = &rfbScreenKeyStore; > > static Bool rfbDCCloseScreen(int index, ScreenPtr pScreen); > >@@ -205,7 +208,7 @@ rfbDCRealizeCursor (pScreen, pCursor) > CursorPtr pCursor; > { > if (pCursor->bits->refcnt <= 1) >- dixSetPrivate(&pCursor->bits->devPrivates, pScreen, NULL); >+ dixSetPrivate(&pCursor->bits->devPrivates, rfbScreenKey, NULL); > return TRUE; > } > >@@ -303,7 +306,7 @@ rfbDCRealize (ScreenPtr pScreen, CursorP > xfree ((pointer) pPriv); > return (rfbDCCursorPtr)NULL; > } >- dixSetPrivate(&pCursor->bits->devPrivates, pScreen, pPriv); >+ dixSetPrivate(&pCursor->bits->devPrivates, rfbScreenKey, pPriv); > return pPriv; > } > pPriv->pPicture = 0; >@@ -321,7 +324,7 @@ rfbDCRealize (ScreenPtr pScreen, CursorP > xfree ((pointer) pPriv); > return (rfbDCCursorPtr)NULL; > } >- dixSetPrivate(&pCursor->bits->devPrivates, pScreen, pPriv); >+ dixSetPrivate(&pCursor->bits->devPrivates, rfbScreenKey, pPriv); > > /* create the two sets of bits, clipping as appropriate */ > >@@ -368,7 +371,7 @@ rfbDCUnrealizeCursor (pScreen, pCursor) > rfbDCCursorPtr pPriv; > > pPriv = (rfbDCCursorPtr)dixLookupPrivate(&pCursor->bits->devPrivates, >- pScreen); >+ rfbScreenKey); > if (pPriv && (pCursor->bits->refcnt <= 1)) > { > if (pPriv->sourceBits) >@@ -380,7 +383,7 @@ rfbDCUnrealizeCursor (pScreen, pCursor) > FreePicture (pPriv->pPicture, 0); > #endif > xfree ((pointer) pPriv); >- dixSetPrivate(&pCursor->bits->devPrivates, pScreen, NULL); >+ dixSetPrivate(&pCursor->bits->devPrivates, rfbScreenKey, NULL); > } > return TRUE; > } >@@ -439,7 +442,7 @@ rfbDCPutUpCursor (pScreen, pCursor, x, y > WindowPtr pWin; > > pPriv = (rfbDCCursorPtr)dixLookupPrivate(&pCursor->bits->devPrivates, >- pScreen); >+ rfbScreenKey); > if (!pPriv) > { > pPriv = rfbDCRealize(pScreen, pCursor); >@@ -690,7 +693,7 @@ rfbDCMoveCursor (pScreen, pCursor, x, y, > PixmapPtr pTemp; > > pPriv = (rfbDCCursorPtr)dixLookupPrivate(&pCursor->bits->devPrivates, >- pScreen); >+ rfbScreenKey); > if (!pPriv) > { > pPriv = rfbDCRealize(pScreen, pCursor);
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
Actions:
View
|
Diff
Attachments on
bug 508553
: 302436