mi: added device ID to miSpriteCursorFuncRec functions
added MPX code to midispcur.c BUG: Core pointer changes whenever MPX cursor changes shape.
This commit is contained in:
		
							parent
							
								
									3bad452d12
								
							
						
					
					
						commit
						1107d8bea2
					
				
							
								
								
									
										12
									
								
								Changelog
								
								
								
								
							
							
						
						
									
										12
									
								
								Changelog
								
								
								
								
							| 
						 | 
					@ -12,6 +12,18 @@ Files:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
TAG: MPX_BEFORE_MIDC_API_BREAK
 | 
					TAG: MPX_BEFORE_MIDC_API_BREAK
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mi:     added device ID to miSpriteCursorFuncRec functions
 | 
				
			||||||
 | 
					        added MPX code to midispcur.c
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Files:
 | 
				
			||||||
 | 
					        mi/midispcur.c
 | 
				
			||||||
 | 
					        mi/misprite.c
 | 
				
			||||||
 | 
					        mi/mispritest.h
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					BUG:   Core pointer changes whenever MPX cursor changes shape.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
== 20.11.06 ==
 | 
					== 20.11.06 ==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
mi:     moved core pointer information from miSpriteScreenRec into a
 | 
					mi:     moved core pointer information from miSpriteScreenRec into a
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										199
									
								
								mi/midispcur.c
								
								
								
								
							
							
						
						
									
										199
									
								
								mi/midispcur.c
								
								
								
								
							| 
						 | 
					@ -54,6 +54,10 @@ in this Software without prior written authorization from The Open Group.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef MPX
 | 
					#ifdef MPX
 | 
				
			||||||
# include "inputstr.h"
 | 
					# include "inputstr.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define SaneID(a) (a >= 0 && a < MAX_DEVICES)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* per-screen private data */
 | 
					/* per-screen private data */
 | 
				
			||||||
| 
						 | 
					@ -98,17 +102,21 @@ typedef struct {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static Bool	miDCRealizeCursor(ScreenPtr pScreen, CursorPtr pCursor);
 | 
					static Bool	miDCRealizeCursor(ScreenPtr pScreen, CursorPtr pCursor);
 | 
				
			||||||
static Bool	miDCUnrealizeCursor(ScreenPtr pScreen, CursorPtr pCursor);
 | 
					static Bool	miDCUnrealizeCursor(ScreenPtr pScreen, CursorPtr pCursor);
 | 
				
			||||||
static Bool	miDCPutUpCursor(ScreenPtr pScreen, CursorPtr pCursor,
 | 
					static Bool	miDCPutUpCursor(int deviceid, ScreenPtr pScreen, 
 | 
				
			||||||
				int x, int y, unsigned long source,
 | 
					                                CursorPtr pCursor, int x, int y, 
 | 
				
			||||||
				unsigned long mask);
 | 
					 | 
				
			||||||
static Bool	miDCSaveUnderCursor(ScreenPtr pScreen, int x, int y,
 | 
					 | 
				
			||||||
				    int w, int h);
 | 
					 | 
				
			||||||
static Bool	miDCRestoreUnderCursor(ScreenPtr pScreen, int x, int y,
 | 
					 | 
				
			||||||
				       int w, int h);
 | 
					 | 
				
			||||||
static Bool	miDCMoveCursor(ScreenPtr pScreen, CursorPtr pCursor,
 | 
					 | 
				
			||||||
			       int x, int y, int w, int h, int dx, int dy,
 | 
					 | 
				
			||||||
                                unsigned long source, unsigned long mask);
 | 
					                                unsigned long source, unsigned long mask);
 | 
				
			||||||
static Bool	miDCChangeSave(ScreenPtr pScreen, int x, int y, int w, int h,	
 | 
					static Bool	miDCSaveUnderCursor(int deviceid, ScreenPtr pScreen, 
 | 
				
			||||||
 | 
					                                    int x, int y,
 | 
				
			||||||
 | 
									    int w, int h);
 | 
				
			||||||
 | 
					static Bool	miDCRestoreUnderCursor(int deviceid, ScreenPtr pScreen, 
 | 
				
			||||||
 | 
					                                       int x, int y,
 | 
				
			||||||
 | 
									       int w, int h);
 | 
				
			||||||
 | 
					static Bool	miDCMoveCursor(int deviceid, ScreenPtr pScreen, 
 | 
				
			||||||
 | 
					                               CursorPtr pCursor, int x, int y, 
 | 
				
			||||||
 | 
					                               int w, int h, int dx, int dy,
 | 
				
			||||||
 | 
								       unsigned long source, unsigned long mask);
 | 
				
			||||||
 | 
					static Bool	miDCChangeSave(int deviceid, ScreenPtr pScreen, 
 | 
				
			||||||
 | 
					                               int x, int y, int w, int h,	
 | 
				
			||||||
                               int dx, int dy);
 | 
					                               int dx, int dy);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static miSpriteCursorFuncRec miDCFuncs = {
 | 
					static miSpriteCursorFuncRec miDCFuncs = {
 | 
				
			||||||
| 
						 | 
					@ -214,24 +222,42 @@ miDCCloseScreen (index, pScreen)
 | 
				
			||||||
    ScreenPtr	pScreen;
 | 
					    ScreenPtr	pScreen;
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    miDCScreenPtr   pScreenPriv;
 | 
					    miDCScreenPtr   pScreenPriv;
 | 
				
			||||||
 | 
					    miDCBufferPtr   pBuffer;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    pScreenPriv = (miDCScreenPtr) pScreen->devPrivates[miDCScreenIndex].ptr;
 | 
					    pScreenPriv = (miDCScreenPtr) pScreen->devPrivates[miDCScreenIndex].ptr;
 | 
				
			||||||
    pScreen->CloseScreen = pScreenPriv->CloseScreen;
 | 
					    pScreen->CloseScreen = pScreenPriv->CloseScreen;
 | 
				
			||||||
    tossGC (pScreenPriv->pCoreBuffer->pSourceGC);
 | 
					    pBuffer = pScreenPriv->pCoreBuffer;
 | 
				
			||||||
    tossGC (pScreenPriv->pCoreBuffer->pMaskGC);
 | 
					
 | 
				
			||||||
    tossGC (pScreenPriv->pCoreBuffer->pSaveGC);
 | 
					#ifdef MPX
 | 
				
			||||||
    tossGC (pScreenPriv->pCoreBuffer->pRestoreGC);
 | 
					    {
 | 
				
			||||||
    tossGC (pScreenPriv->pCoreBuffer->pMoveGC);
 | 
					        int mpBufferIdx = 0;
 | 
				
			||||||
    tossGC (pScreenPriv->pCoreBuffer->pPixSourceGC);
 | 
					        while (mpBufferIdx < MAX_DEVICES) 
 | 
				
			||||||
    tossGC (pScreenPriv->pCoreBuffer->pPixMaskGC);
 | 
					        {
 | 
				
			||||||
    tossPix (pScreenPriv->pCoreBuffer->pSave);
 | 
					            pBuffer = &pScreenPriv->pMPBuffers[mpBufferIdx];
 | 
				
			||||||
    tossPix (pScreenPriv->pCoreBuffer->pTemp);
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					            tossGC (pBuffer->pSourceGC);
 | 
				
			||||||
 | 
					            tossGC (pBuffer->pMaskGC);
 | 
				
			||||||
 | 
					            tossGC (pBuffer->pSaveGC);
 | 
				
			||||||
 | 
					            tossGC (pBuffer->pRestoreGC);
 | 
				
			||||||
 | 
					            tossGC (pBuffer->pMoveGC);
 | 
				
			||||||
 | 
					            tossGC (pBuffer->pPixSourceGC);
 | 
				
			||||||
 | 
					            tossGC (pBuffer->pPixMaskGC);
 | 
				
			||||||
 | 
					            tossPix (pBuffer->pSave);
 | 
				
			||||||
 | 
					            tossPix (pBuffer->pTemp);
 | 
				
			||||||
#ifdef ARGB_CURSOR
 | 
					#ifdef ARGB_CURSOR
 | 
				
			||||||
#if 0				/* This has been free()d before */
 | 
					#if 0				/* This has been free()d before */
 | 
				
			||||||
            tossPict (pScreenPriv->pRootPicture);
 | 
					            tossPict (pScreenPriv->pRootPicture);
 | 
				
			||||||
#endif 
 | 
					#endif 
 | 
				
			||||||
    tossPict (pScreenPriv->pCoreBuffer->pTempPicture);
 | 
					            tossPict (pBuffer->pTempPicture);
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef MPX
 | 
				
			||||||
 | 
					            mpBufferIdx++;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    xfree ((pointer) pScreenPriv);
 | 
					    xfree ((pointer) pScreenPriv);
 | 
				
			||||||
    return (*pScreen->CloseScreen) (index, pScreen);
 | 
					    return (*pScreen->CloseScreen) (index, pScreen);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -504,7 +530,8 @@ miDCMakeGC(
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static Bool
 | 
					static Bool
 | 
				
			||||||
miDCPutUpCursor (pScreen, pCursor, x, y, source, mask)
 | 
					miDCPutUpCursor (deviceid, pScreen, pCursor, x, y, source, mask)
 | 
				
			||||||
 | 
					    int             deviceid;
 | 
				
			||||||
    ScreenPtr	    pScreen;
 | 
					    ScreenPtr	    pScreen;
 | 
				
			||||||
    CursorPtr	    pCursor;
 | 
					    CursorPtr	    pCursor;
 | 
				
			||||||
    int		    x, y;
 | 
					    int		    x, y;
 | 
				
			||||||
| 
						 | 
					@ -512,6 +539,7 @@ miDCPutUpCursor (pScreen, pCursor, x, y, source, mask)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    miDCScreenPtr   pScreenPriv;
 | 
					    miDCScreenPtr   pScreenPriv;
 | 
				
			||||||
    miDCCursorPtr   pPriv;
 | 
					    miDCCursorPtr   pPriv;
 | 
				
			||||||
 | 
					    miDCBufferPtr   pBuffer;
 | 
				
			||||||
    WindowPtr	    pWin;
 | 
					    WindowPtr	    pWin;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    pPriv = (miDCCursorPtr) pCursor->bits->devPriv[pScreen->myNum];
 | 
					    pPriv = (miDCCursorPtr) pCursor->bits->devPriv[pScreen->myNum];
 | 
				
			||||||
| 
						 | 
					@ -523,15 +551,22 @@ miDCPutUpCursor (pScreen, pCursor, x, y, source, mask)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    pScreenPriv = (miDCScreenPtr) pScreen->devPrivates[miDCScreenIndex].ptr;
 | 
					    pScreenPriv = (miDCScreenPtr) pScreen->devPrivates[miDCScreenIndex].ptr;
 | 
				
			||||||
    pWin = WindowTable[pScreen->myNum];
 | 
					    pWin = WindowTable[pScreen->myNum];
 | 
				
			||||||
 | 
					    pBuffer = pScreenPriv->pCoreBuffer;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef MPX
 | 
				
			||||||
 | 
					    if (SaneID(deviceid))
 | 
				
			||||||
 | 
					            pBuffer = &pScreenPriv->pMPBuffers[deviceid];
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef ARGB_CURSOR
 | 
					#ifdef ARGB_CURSOR
 | 
				
			||||||
    if (pPriv->pPicture)
 | 
					    if (pPriv->pPicture)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
	if (!EnsurePicture(pScreenPriv->pCoreBuffer->pRootPicture, &pWin->drawable, pWin))
 | 
						if (!EnsurePicture(pBuffer->pRootPicture, &pWin->drawable, pWin))
 | 
				
			||||||
	    return FALSE;
 | 
						    return FALSE;
 | 
				
			||||||
	CompositePicture (PictOpOver,
 | 
						CompositePicture (PictOpOver,
 | 
				
			||||||
			  pPriv->pPicture,
 | 
								  pPriv->pPicture,
 | 
				
			||||||
			  NULL,
 | 
								  NULL,
 | 
				
			||||||
			  pScreenPriv->pCoreBuffer->pRootPicture,
 | 
								  pBuffer->pRootPicture,
 | 
				
			||||||
			  0, 0, 0, 0, 
 | 
								  0, 0, 0, 0, 
 | 
				
			||||||
			  x, y, 
 | 
								  x, y, 
 | 
				
			||||||
			  pCursor->bits->width,
 | 
								  pCursor->bits->width,
 | 
				
			||||||
| 
						 | 
					@ -540,16 +575,16 @@ miDCPutUpCursor (pScreen, pCursor, x, y, source, mask)
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
	if (!EnsureGC(pScreenPriv->pCoreBuffer->pSourceGC, pWin))
 | 
						if (!EnsureGC(pBuffer->pSourceGC, pWin))
 | 
				
			||||||
	    return FALSE;
 | 
						    return FALSE;
 | 
				
			||||||
	if (!EnsureGC(pScreenPriv->pCoreBuffer->pMaskGC, pWin))
 | 
						if (!EnsureGC(pBuffer->pMaskGC, pWin))
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
	    FreeGC (pScreenPriv->pCoreBuffer->pSourceGC, (GContext) 0);
 | 
						    FreeGC (pBuffer->pSourceGC, (GContext) 0);
 | 
				
			||||||
	    pScreenPriv->pCoreBuffer->pSourceGC = 0;
 | 
						    pBuffer->pSourceGC = 0;
 | 
				
			||||||
	    return FALSE;
 | 
						    return FALSE;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	miDCPutBits ((DrawablePtr)pWin, pPriv,
 | 
						miDCPutBits ((DrawablePtr)pWin, pPriv,
 | 
				
			||||||
		     pScreenPriv->pCoreBuffer->pSourceGC, pScreenPriv->pCoreBuffer->pMaskGC,
 | 
							     pBuffer->pSourceGC, pBuffer->pMaskGC,
 | 
				
			||||||
		     x, y, pCursor->bits->width, pCursor->bits->height,
 | 
							     x, y, pCursor->bits->width, pCursor->bits->height,
 | 
				
			||||||
		     source, mask);
 | 
							     source, mask);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					@ -557,30 +592,37 @@ miDCPutUpCursor (pScreen, pCursor, x, y, source, mask)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static Bool
 | 
					static Bool
 | 
				
			||||||
miDCSaveUnderCursor (pScreen, x, y, w, h)
 | 
					miDCSaveUnderCursor (deviceid, pScreen, x, y, w, h)
 | 
				
			||||||
 | 
					    int         deviceid;
 | 
				
			||||||
    ScreenPtr	pScreen;
 | 
					    ScreenPtr	pScreen;
 | 
				
			||||||
    int		x, y, w, h;
 | 
					    int		x, y, w, h;
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    miDCScreenPtr   pScreenPriv;
 | 
					    miDCScreenPtr   pScreenPriv;
 | 
				
			||||||
 | 
					    miDCBufferPtr   pBuffer;
 | 
				
			||||||
    PixmapPtr	    pSave;
 | 
					    PixmapPtr	    pSave;
 | 
				
			||||||
    WindowPtr	    pWin;
 | 
					    WindowPtr	    pWin;
 | 
				
			||||||
    GCPtr	    pGC;
 | 
					    GCPtr	    pGC;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    pScreenPriv = (miDCScreenPtr) pScreen->devPrivates[miDCScreenIndex].ptr;
 | 
					    pScreenPriv = (miDCScreenPtr) pScreen->devPrivates[miDCScreenIndex].ptr;
 | 
				
			||||||
    pSave = pScreenPriv->pCoreBuffer->pSave;
 | 
					    pBuffer = pScreenPriv->pCoreBuffer;
 | 
				
			||||||
 | 
					#ifdef MPX
 | 
				
			||||||
 | 
					    if (SaneID(deviceid))
 | 
				
			||||||
 | 
					            pBuffer = &pScreenPriv->pMPBuffers[deviceid];
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					    pSave = pBuffer->pSave;
 | 
				
			||||||
    pWin = WindowTable[pScreen->myNum];
 | 
					    pWin = WindowTable[pScreen->myNum];
 | 
				
			||||||
    if (!pSave || pSave->drawable.width < w || pSave->drawable.height < h)
 | 
					    if (!pSave || pSave->drawable.width < w || pSave->drawable.height < h)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
	if (pSave)
 | 
						if (pSave)
 | 
				
			||||||
	    (*pScreen->DestroyPixmap) (pSave);
 | 
						    (*pScreen->DestroyPixmap) (pSave);
 | 
				
			||||||
	pScreenPriv->pCoreBuffer->pSave = pSave =
 | 
						pBuffer->pSave = pSave =
 | 
				
			||||||
		(*pScreen->CreatePixmap) (pScreen, w, h, pScreen->rootDepth);
 | 
							(*pScreen->CreatePixmap) (pScreen, w, h, pScreen->rootDepth);
 | 
				
			||||||
	if (!pSave)
 | 
						if (!pSave)
 | 
				
			||||||
	    return FALSE;
 | 
						    return FALSE;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    if (!EnsureGC(pScreenPriv->pCoreBuffer->pSaveGC, pWin))
 | 
					    if (!EnsureGC(pBuffer->pSaveGC, pWin))
 | 
				
			||||||
	return FALSE;
 | 
						return FALSE;
 | 
				
			||||||
    pGC = pScreenPriv->pCoreBuffer->pSaveGC;
 | 
					    pGC = pBuffer->pSaveGC;
 | 
				
			||||||
    if (pSave->drawable.serialNumber != pGC->serialNumber)
 | 
					    if (pSave->drawable.serialNumber != pGC->serialNumber)
 | 
				
			||||||
	ValidateGC ((DrawablePtr) pSave, pGC);
 | 
						ValidateGC ((DrawablePtr) pSave, pGC);
 | 
				
			||||||
    (*pGC->ops->CopyArea) ((DrawablePtr) pWin, (DrawablePtr) pSave, pGC,
 | 
					    (*pGC->ops->CopyArea) ((DrawablePtr) pWin, (DrawablePtr) pSave, pGC,
 | 
				
			||||||
| 
						 | 
					@ -589,23 +631,30 @@ miDCSaveUnderCursor (pScreen, x, y, w, h)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static Bool
 | 
					static Bool
 | 
				
			||||||
miDCRestoreUnderCursor (pScreen, x, y, w, h)
 | 
					miDCRestoreUnderCursor (deviceid, pScreen, x, y, w, h)
 | 
				
			||||||
 | 
					    int         deviceid;
 | 
				
			||||||
    ScreenPtr	pScreen;
 | 
					    ScreenPtr	pScreen;
 | 
				
			||||||
    int		x, y, w, h;
 | 
					    int		x, y, w, h;
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    miDCScreenPtr   pScreenPriv;
 | 
					    miDCScreenPtr   pScreenPriv;
 | 
				
			||||||
 | 
					    miDCBufferPtr   pBuffer;
 | 
				
			||||||
    PixmapPtr	    pSave;
 | 
					    PixmapPtr	    pSave;
 | 
				
			||||||
    WindowPtr	    pWin;
 | 
					    WindowPtr	    pWin;
 | 
				
			||||||
    GCPtr	    pGC;
 | 
					    GCPtr	    pGC;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    pScreenPriv = (miDCScreenPtr) pScreen->devPrivates[miDCScreenIndex].ptr;
 | 
					    pScreenPriv = (miDCScreenPtr) pScreen->devPrivates[miDCScreenIndex].ptr;
 | 
				
			||||||
    pSave = pScreenPriv->pCoreBuffer->pSave;
 | 
					    pBuffer = pScreenPriv->pCoreBuffer;
 | 
				
			||||||
 | 
					#ifdef MPX
 | 
				
			||||||
 | 
					    if (SaneID(deviceid))
 | 
				
			||||||
 | 
					            pBuffer = &pScreenPriv->pMPBuffers[deviceid];
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					    pSave = pBuffer->pSave;
 | 
				
			||||||
    pWin = WindowTable[pScreen->myNum];
 | 
					    pWin = WindowTable[pScreen->myNum];
 | 
				
			||||||
    if (!pSave)
 | 
					    if (!pSave)
 | 
				
			||||||
	return FALSE;
 | 
						return FALSE;
 | 
				
			||||||
    if (!EnsureGC(pScreenPriv->pCoreBuffer->pRestoreGC, pWin))
 | 
					    if (!EnsureGC(pBuffer->pRestoreGC, pWin))
 | 
				
			||||||
	return FALSE;
 | 
						return FALSE;
 | 
				
			||||||
    pGC = pScreenPriv->pCoreBuffer->pRestoreGC;
 | 
					    pGC = pBuffer->pRestoreGC;
 | 
				
			||||||
    if (pWin->drawable.serialNumber != pGC->serialNumber)
 | 
					    if (pWin->drawable.serialNumber != pGC->serialNumber)
 | 
				
			||||||
	ValidateGC ((DrawablePtr) pWin, pGC);
 | 
						ValidateGC ((DrawablePtr) pWin, pGC);
 | 
				
			||||||
    (*pGC->ops->CopyArea) ((DrawablePtr) pSave, (DrawablePtr) pWin, pGC,
 | 
					    (*pGC->ops->CopyArea) ((DrawablePtr) pSave, (DrawablePtr) pWin, pGC,
 | 
				
			||||||
| 
						 | 
					@ -614,27 +663,34 @@ miDCRestoreUnderCursor (pScreen, x, y, w, h)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static Bool
 | 
					static Bool
 | 
				
			||||||
miDCChangeSave (pScreen, x, y, w, h, dx, dy)
 | 
					miDCChangeSave (deviceid, pScreen, x, y, w, h, dx, dy)
 | 
				
			||||||
 | 
					    int             deviceid;
 | 
				
			||||||
    ScreenPtr	    pScreen;
 | 
					    ScreenPtr	    pScreen;
 | 
				
			||||||
    int		    x, y, w, h, dx, dy;
 | 
					    int		    x, y, w, h, dx, dy;
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    miDCScreenPtr   pScreenPriv;
 | 
					    miDCScreenPtr   pScreenPriv;
 | 
				
			||||||
 | 
					    miDCBufferPtr   pBuffer;
 | 
				
			||||||
    PixmapPtr	    pSave;
 | 
					    PixmapPtr	    pSave;
 | 
				
			||||||
    WindowPtr	    pWin;
 | 
					    WindowPtr	    pWin;
 | 
				
			||||||
    GCPtr	    pGC;
 | 
					    GCPtr	    pGC;
 | 
				
			||||||
    int		    sourcex, sourcey, destx, desty, copyw, copyh;
 | 
					    int		    sourcex, sourcey, destx, desty, copyw, copyh;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    pScreenPriv = (miDCScreenPtr) pScreen->devPrivates[miDCScreenIndex].ptr;
 | 
					    pScreenPriv = (miDCScreenPtr) pScreen->devPrivates[miDCScreenIndex].ptr;
 | 
				
			||||||
    pSave = pScreenPriv->pCoreBuffer->pSave;
 | 
					    pBuffer = pScreenPriv->pCoreBuffer;
 | 
				
			||||||
 | 
					#ifdef MPX
 | 
				
			||||||
 | 
					    if (SaneID(deviceid))
 | 
				
			||||||
 | 
					            pBuffer = &pScreenPriv->pMPBuffers[deviceid];
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					    pSave = pBuffer->pSave;
 | 
				
			||||||
    pWin = WindowTable[pScreen->myNum];
 | 
					    pWin = WindowTable[pScreen->myNum];
 | 
				
			||||||
    /*
 | 
					    /*
 | 
				
			||||||
     * restore the bits which are about to get trashed
 | 
					     * restore the bits which are about to get trashed
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    if (!pSave)
 | 
					    if (!pSave)
 | 
				
			||||||
	return FALSE;
 | 
						return FALSE;
 | 
				
			||||||
    if (!EnsureGC(pScreenPriv->pCoreBuffer->pRestoreGC, pWin))
 | 
					    if (!EnsureGC(pBuffer->pRestoreGC, pWin))
 | 
				
			||||||
	return FALSE;
 | 
						return FALSE;
 | 
				
			||||||
    pGC = pScreenPriv->pCoreBuffer->pRestoreGC;
 | 
					    pGC = pBuffer->pRestoreGC;
 | 
				
			||||||
    if (pWin->drawable.serialNumber != pGC->serialNumber)
 | 
					    if (pWin->drawable.serialNumber != pGC->serialNumber)
 | 
				
			||||||
	ValidateGC ((DrawablePtr) pWin, pGC);
 | 
						ValidateGC ((DrawablePtr) pWin, pGC);
 | 
				
			||||||
    /*
 | 
					    /*
 | 
				
			||||||
| 
						 | 
					@ -672,9 +728,9 @@ miDCChangeSave (pScreen, x, y, w, h, dx, dy)
 | 
				
			||||||
	(*pGC->ops->CopyArea) ((DrawablePtr) pSave, (DrawablePtr) pWin, pGC,
 | 
						(*pGC->ops->CopyArea) ((DrawablePtr) pSave, (DrawablePtr) pWin, pGC,
 | 
				
			||||||
			       0, sourcey, -dx, copyh, x + dx, desty);
 | 
								       0, sourcey, -dx, copyh, x + dx, desty);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    if (!EnsureGC(pScreenPriv->pCoreBuffer->pSaveGC, pWin))
 | 
					    if (!EnsureGC(pBuffer->pSaveGC, pWin))
 | 
				
			||||||
	return FALSE;
 | 
						return FALSE;
 | 
				
			||||||
    pGC = pScreenPriv->pCoreBuffer->pSaveGC;
 | 
					    pGC = pBuffer->pSaveGC;
 | 
				
			||||||
    if (pSave->drawable.serialNumber != pGC->serialNumber)
 | 
					    if (pSave->drawable.serialNumber != pGC->serialNumber)
 | 
				
			||||||
	ValidateGC ((DrawablePtr) pSave, pGC);
 | 
						ValidateGC ((DrawablePtr) pSave, pGC);
 | 
				
			||||||
    /*
 | 
					    /*
 | 
				
			||||||
| 
						 | 
					@ -746,7 +802,8 @@ miDCChangeSave (pScreen, x, y, w, h, dx, dy)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static Bool
 | 
					static Bool
 | 
				
			||||||
miDCMoveCursor (pScreen, pCursor, x, y, w, h, dx, dy, source, mask)
 | 
					miDCMoveCursor (deviceid, pScreen, pCursor, x, y, w, h, dx, dy, source, mask)
 | 
				
			||||||
 | 
					    int             deviceid;
 | 
				
			||||||
    ScreenPtr	    pScreen;
 | 
					    ScreenPtr	    pScreen;
 | 
				
			||||||
    CursorPtr	    pCursor;
 | 
					    CursorPtr	    pCursor;
 | 
				
			||||||
    int		    x, y, w, h, dx, dy;
 | 
					    int		    x, y, w, h, dx, dy;
 | 
				
			||||||
| 
						 | 
					@ -754,6 +811,7 @@ miDCMoveCursor (pScreen, pCursor, x, y, w, h, dx, dy, source, mask)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    miDCCursorPtr   pPriv;
 | 
					    miDCCursorPtr   pPriv;
 | 
				
			||||||
    miDCScreenPtr   pScreenPriv;
 | 
					    miDCScreenPtr   pScreenPriv;
 | 
				
			||||||
 | 
					    miDCBufferPtr   pBuffer;
 | 
				
			||||||
    int		    status;
 | 
					    int		    status;
 | 
				
			||||||
    WindowPtr	    pWin;
 | 
					    WindowPtr	    pWin;
 | 
				
			||||||
    GCPtr	    pGC;
 | 
					    GCPtr	    pGC;
 | 
				
			||||||
| 
						 | 
					@ -769,39 +827,44 @@ miDCMoveCursor (pScreen, pCursor, x, y, w, h, dx, dy, source, mask)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    pScreenPriv = (miDCScreenPtr) pScreen->devPrivates[miDCScreenIndex].ptr;
 | 
					    pScreenPriv = (miDCScreenPtr) pScreen->devPrivates[miDCScreenIndex].ptr;
 | 
				
			||||||
    pWin = WindowTable[pScreen->myNum];
 | 
					    pWin = WindowTable[pScreen->myNum];
 | 
				
			||||||
    pTemp = pScreenPriv->pCoreBuffer->pTemp;
 | 
					    pBuffer = pScreenPriv->pCoreBuffer;
 | 
				
			||||||
 | 
					#ifdef MPX
 | 
				
			||||||
 | 
					    if (SaneID(deviceid))
 | 
				
			||||||
 | 
					            pBuffer = &pScreenPriv->pMPBuffers[deviceid];
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					    pTemp = pBuffer->pTemp;
 | 
				
			||||||
    if (!pTemp ||
 | 
					    if (!pTemp ||
 | 
				
			||||||
	pTemp->drawable.width != pScreenPriv->pCoreBuffer->pSave->drawable.width ||
 | 
						pTemp->drawable.width != pBuffer->pSave->drawable.width ||
 | 
				
			||||||
	pTemp->drawable.height != pScreenPriv->pCoreBuffer->pSave->drawable.height)
 | 
						pTemp->drawable.height != pBuffer->pSave->drawable.height)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
	if (pTemp)
 | 
						if (pTemp)
 | 
				
			||||||
	    (*pScreen->DestroyPixmap) (pTemp);
 | 
						    (*pScreen->DestroyPixmap) (pTemp);
 | 
				
			||||||
#ifdef ARGB_CURSOR
 | 
					#ifdef ARGB_CURSOR
 | 
				
			||||||
	if (pScreenPriv->pCoreBuffer->pTempPicture)
 | 
						if (pBuffer->pTempPicture)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
	    FreePicture (pScreenPriv->pCoreBuffer->pTempPicture, 0);
 | 
						    FreePicture (pBuffer->pTempPicture, 0);
 | 
				
			||||||
	    pScreenPriv->pCoreBuffer->pTempPicture = 0;
 | 
						    pBuffer->pTempPicture = 0;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
	pScreenPriv->pCoreBuffer->pTemp = pTemp = (*pScreen->CreatePixmap)
 | 
						pBuffer->pTemp = pTemp = (*pScreen->CreatePixmap)
 | 
				
			||||||
	    (pScreen, w, h, pScreenPriv->pCoreBuffer->pSave->drawable.depth);
 | 
						    (pScreen, w, h, pBuffer->pSave->drawable.depth);
 | 
				
			||||||
	if (!pTemp)
 | 
						if (!pTemp)
 | 
				
			||||||
	    return FALSE;
 | 
						    return FALSE;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    if (!pScreenPriv->pCoreBuffer->pMoveGC)
 | 
					    if (!pBuffer->pMoveGC)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
	pScreenPriv->pCoreBuffer->pMoveGC = CreateGC ((DrawablePtr)pTemp,
 | 
						pBuffer->pMoveGC = CreateGC ((DrawablePtr)pTemp,
 | 
				
			||||||
	    GCGraphicsExposures, &gcval, &status);
 | 
						    GCGraphicsExposures, &gcval, &status);
 | 
				
			||||||
	if (!pScreenPriv->pCoreBuffer->pMoveGC)
 | 
						if (!pBuffer->pMoveGC)
 | 
				
			||||||
	    return FALSE;
 | 
						    return FALSE;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    /*
 | 
					    /*
 | 
				
			||||||
     * copy the saved area to a temporary pixmap
 | 
					     * copy the saved area to a temporary pixmap
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    pGC = pScreenPriv->pCoreBuffer->pMoveGC;
 | 
					    pGC = pBuffer->pMoveGC;
 | 
				
			||||||
    if (pGC->serialNumber != pTemp->drawable.serialNumber)
 | 
					    if (pGC->serialNumber != pTemp->drawable.serialNumber)
 | 
				
			||||||
	ValidateGC ((DrawablePtr) pTemp, pGC);
 | 
						ValidateGC ((DrawablePtr) pTemp, pGC);
 | 
				
			||||||
    (*pGC->ops->CopyArea)((DrawablePtr)pScreenPriv->pCoreBuffer->pSave,
 | 
					    (*pGC->ops->CopyArea)((DrawablePtr)pBuffer->pSave,
 | 
				
			||||||
			  (DrawablePtr)pTemp, pGC, 0, 0, w, h, 0, 0);
 | 
								  (DrawablePtr)pTemp, pGC, 0, 0, w, h, 0, 0);
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    /*
 | 
					    /*
 | 
				
			||||||
| 
						 | 
					@ -810,12 +873,12 @@ miDCMoveCursor (pScreen, pCursor, x, y, w, h, dx, dy, source, mask)
 | 
				
			||||||
#ifdef ARGB_CURSOR
 | 
					#ifdef ARGB_CURSOR
 | 
				
			||||||
    if (pPriv->pPicture)
 | 
					    if (pPriv->pPicture)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
	if (!EnsurePicture(pScreenPriv->pCoreBuffer->pTempPicture, &pTemp->drawable, pWin))
 | 
						if (!EnsurePicture(pBuffer->pTempPicture, &pTemp->drawable, pWin))
 | 
				
			||||||
	    return FALSE;
 | 
						    return FALSE;
 | 
				
			||||||
	CompositePicture (PictOpOver,
 | 
						CompositePicture (PictOpOver,
 | 
				
			||||||
			  pPriv->pPicture,
 | 
								  pPriv->pPicture,
 | 
				
			||||||
			  NULL,
 | 
								  NULL,
 | 
				
			||||||
			  pScreenPriv->pCoreBuffer->pTempPicture,
 | 
								  pBuffer->pTempPicture,
 | 
				
			||||||
			  0, 0, 0, 0, 
 | 
								  0, 0, 0, 0, 
 | 
				
			||||||
			  dx, dy, 
 | 
								  dx, dy, 
 | 
				
			||||||
			  pCursor->bits->width,
 | 
								  pCursor->bits->width,
 | 
				
			||||||
| 
						 | 
					@ -824,22 +887,22 @@ miDCMoveCursor (pScreen, pCursor, x, y, w, h, dx, dy, source, mask)
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
	if (!pScreenPriv->pCoreBuffer->pPixSourceGC)
 | 
						if (!pBuffer->pPixSourceGC)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
	    pScreenPriv->pCoreBuffer->pPixSourceGC = CreateGC ((DrawablePtr)pTemp,
 | 
						    pBuffer->pPixSourceGC = CreateGC ((DrawablePtr)pTemp,
 | 
				
			||||||
		GCGraphicsExposures, &gcval, &status);
 | 
							GCGraphicsExposures, &gcval, &status);
 | 
				
			||||||
	    if (!pScreenPriv->pCoreBuffer->pPixSourceGC)
 | 
						    if (!pBuffer->pPixSourceGC)
 | 
				
			||||||
		return FALSE;
 | 
							return FALSE;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if (!pScreenPriv->pCoreBuffer->pPixMaskGC)
 | 
						if (!pBuffer->pPixMaskGC)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
	    pScreenPriv->pCoreBuffer->pPixMaskGC = CreateGC ((DrawablePtr)pTemp,
 | 
						    pBuffer->pPixMaskGC = CreateGC ((DrawablePtr)pTemp,
 | 
				
			||||||
		GCGraphicsExposures, &gcval, &status);
 | 
							GCGraphicsExposures, &gcval, &status);
 | 
				
			||||||
	    if (!pScreenPriv->pCoreBuffer->pPixMaskGC)
 | 
						    if (!pBuffer->pPixMaskGC)
 | 
				
			||||||
		return FALSE;
 | 
							return FALSE;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	miDCPutBits ((DrawablePtr)pTemp, pPriv,
 | 
						miDCPutBits ((DrawablePtr)pTemp, pPriv,
 | 
				
			||||||
		     pScreenPriv->pCoreBuffer->pPixSourceGC, pScreenPriv->pCoreBuffer->pPixMaskGC,
 | 
							     pBuffer->pPixSourceGC, pBuffer->pPixMaskGC,
 | 
				
			||||||
		     dx, dy, pCursor->bits->width, pCursor->bits->height,
 | 
							     dx, dy, pCursor->bits->width, pCursor->bits->height,
 | 
				
			||||||
		     source, mask);
 | 
							     source, mask);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					@ -848,9 +911,9 @@ miDCMoveCursor (pScreen, pCursor, x, y, w, h, dx, dy, source, mask)
 | 
				
			||||||
     * copy the temporary pixmap onto the screen
 | 
					     * copy the temporary pixmap onto the screen
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (!EnsureGC(pScreenPriv->pCoreBuffer->pRestoreGC, pWin))
 | 
					    if (!EnsureGC(pBuffer->pRestoreGC, pWin))
 | 
				
			||||||
	return FALSE;
 | 
						return FALSE;
 | 
				
			||||||
    pGC = pScreenPriv->pCoreBuffer->pRestoreGC;
 | 
					    pGC = pBuffer->pRestoreGC;
 | 
				
			||||||
    if (pWin->drawable.serialNumber != pGC->serialNumber)
 | 
					    if (pWin->drawable.serialNumber != pGC->serialNumber)
 | 
				
			||||||
	ValidateGC ((DrawablePtr) pWin, pGC);
 | 
						ValidateGC ((DrawablePtr) pWin, pGC);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1084,7 +1084,8 @@ miSpriteRemoveCursor (pDevCursor, pScreen)
 | 
				
			||||||
    pScreenPriv = (miSpriteScreenPtr) pScreen->devPrivates[miSpriteScreenIndex].ptr;
 | 
					    pScreenPriv = (miSpriteScreenPtr) pScreen->devPrivates[miSpriteScreenIndex].ptr;
 | 
				
			||||||
    miSpriteIsUpFALSE (pDevCursor, pScreen, pScreenPriv);
 | 
					    miSpriteIsUpFALSE (pDevCursor, pScreen, pScreenPriv);
 | 
				
			||||||
    pDevCursor->pCacheWin = NullWindow;
 | 
					    pDevCursor->pCacheWin = NullWindow;
 | 
				
			||||||
    if (!(*pScreenPriv->funcs->RestoreUnderCursor) (pScreen,
 | 
					    if (!(*pScreenPriv->funcs->RestoreUnderCursor) (pDevCursor->id, 
 | 
				
			||||||
 | 
					                                         pScreen,
 | 
				
			||||||
					 pDevCursor->saved.x1,
 | 
										 pDevCursor->saved.x1,
 | 
				
			||||||
                                         pDevCursor->saved.y1,
 | 
					                                         pDevCursor->saved.y1,
 | 
				
			||||||
                                         pDevCursor->saved.x2 -
 | 
					                                         pDevCursor->saved.x2 -
 | 
				
			||||||
| 
						 | 
					@ -1117,7 +1118,8 @@ miSpriteRestoreCursor (pDevCursor, pScreen)
 | 
				
			||||||
    pCursor = pDevCursor->pCursor;
 | 
					    pCursor = pDevCursor->pCursor;
 | 
				
			||||||
    x = pDevCursor->x - (int)pCursor->bits->xhot;
 | 
					    x = pDevCursor->x - (int)pCursor->bits->xhot;
 | 
				
			||||||
    y = pDevCursor->y - (int)pCursor->bits->yhot;
 | 
					    y = pDevCursor->y - (int)pCursor->bits->yhot;
 | 
				
			||||||
    if ((*pScreenPriv->funcs->SaveUnderCursor) (pScreen,
 | 
					    if ((*pScreenPriv->funcs->SaveUnderCursor) (pDevCursor->id, 
 | 
				
			||||||
 | 
					                                      pScreen,
 | 
				
			||||||
				      pDevCursor->saved.x1,
 | 
									      pDevCursor->saved.x1,
 | 
				
			||||||
				      pDevCursor->saved.y1,
 | 
									      pDevCursor->saved.y1,
 | 
				
			||||||
                                      pDevCursor->saved.x2 -
 | 
					                                      pDevCursor->saved.x2 -
 | 
				
			||||||
| 
						 | 
					@ -1127,7 +1129,8 @@ miSpriteRestoreCursor (pDevCursor, pScreen)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
	if (pDevCursor->checkPixels)
 | 
						if (pDevCursor->checkPixels)
 | 
				
			||||||
	    miSpriteFindColors (pDevCursor, pScreen);
 | 
						    miSpriteFindColors (pDevCursor, pScreen);
 | 
				
			||||||
	if ((*pScreenPriv->funcs->PutUpCursor) (pScreen, pCursor, x, y,
 | 
						if ((*pScreenPriv->funcs->PutUpCursor) (pDevCursor->id, pScreen, 
 | 
				
			||||||
 | 
					                                  pCursor, x, y,
 | 
				
			||||||
				  pDevCursor->colors[SOURCE_COLOR].pixel,
 | 
									  pDevCursor->colors[SOURCE_COLOR].pixel,
 | 
				
			||||||
				  pDevCursor->colors[MASK_COLOR].pixel))
 | 
									  pDevCursor->colors[MASK_COLOR].pixel))
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -42,6 +42,7 @@ typedef struct {
 | 
				
			||||||
		CursorPtr /*pCursor*/
 | 
							CursorPtr /*pCursor*/
 | 
				
			||||||
);
 | 
					);
 | 
				
			||||||
    Bool	(*PutUpCursor)(
 | 
					    Bool	(*PutUpCursor)(
 | 
				
			||||||
 | 
					                int /* deviceid */,
 | 
				
			||||||
		ScreenPtr /*pScreen*/,
 | 
							ScreenPtr /*pScreen*/,
 | 
				
			||||||
		CursorPtr /*pCursor*/,
 | 
							CursorPtr /*pCursor*/,
 | 
				
			||||||
		int /*x*/,
 | 
							int /*x*/,
 | 
				
			||||||
| 
						 | 
					@ -50,6 +51,7 @@ typedef struct {
 | 
				
			||||||
		unsigned long /*mask*/
 | 
							unsigned long /*mask*/
 | 
				
			||||||
);
 | 
					);
 | 
				
			||||||
    Bool	(*SaveUnderCursor)(
 | 
					    Bool	(*SaveUnderCursor)(
 | 
				
			||||||
 | 
					                int /* deviceid */,
 | 
				
			||||||
		ScreenPtr /*pScreen*/,
 | 
							ScreenPtr /*pScreen*/,
 | 
				
			||||||
		int /*x*/,
 | 
							int /*x*/,
 | 
				
			||||||
		int /*y*/,
 | 
							int /*y*/,
 | 
				
			||||||
| 
						 | 
					@ -57,6 +59,7 @@ typedef struct {
 | 
				
			||||||
		int /*h*/
 | 
							int /*h*/
 | 
				
			||||||
);
 | 
					);
 | 
				
			||||||
    Bool	(*RestoreUnderCursor)(
 | 
					    Bool	(*RestoreUnderCursor)(
 | 
				
			||||||
 | 
					                int /* deviceid */,
 | 
				
			||||||
		ScreenPtr /*pScreen*/,
 | 
							ScreenPtr /*pScreen*/,
 | 
				
			||||||
		int /*x*/,
 | 
							int /*x*/,
 | 
				
			||||||
		int /*y*/,
 | 
							int /*y*/,
 | 
				
			||||||
| 
						 | 
					@ -64,6 +67,7 @@ typedef struct {
 | 
				
			||||||
		int /*h*/
 | 
							int /*h*/
 | 
				
			||||||
);
 | 
					);
 | 
				
			||||||
    Bool	(*MoveCursor)(
 | 
					    Bool	(*MoveCursor)(
 | 
				
			||||||
 | 
					                int /* deviceid */,
 | 
				
			||||||
		ScreenPtr /*pScreen*/,
 | 
							ScreenPtr /*pScreen*/,
 | 
				
			||||||
		CursorPtr /*pCursor*/,
 | 
							CursorPtr /*pCursor*/,
 | 
				
			||||||
		int /*x*/,
 | 
							int /*x*/,
 | 
				
			||||||
| 
						 | 
					@ -76,6 +80,7 @@ typedef struct {
 | 
				
			||||||
		unsigned long /*mask*/
 | 
							unsigned long /*mask*/
 | 
				
			||||||
);
 | 
					);
 | 
				
			||||||
    Bool	(*ChangeSave)(
 | 
					    Bool	(*ChangeSave)(
 | 
				
			||||||
 | 
					                int /* deviceid */,
 | 
				
			||||||
		ScreenPtr /*pScreen*/,
 | 
							ScreenPtr /*pScreen*/,
 | 
				
			||||||
		int /*x*/,
 | 
							int /*x*/,
 | 
				
			||||||
		int /*y*/,
 | 
							int /*y*/,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue