mi: closing memory leak, miPointer is freed in miPointerCloseScreen

bugfix: uninitialized pPointer in miPointerGetPosition ifndef MPX
	adding DeviceIntPtr parameter to ScreenRec's cursor functions.
	cleanup of miPointer code to use same scheme in each function

dix:	MPHasCursor() function determines checking whether to invoke
	cursor rendering.

animcur: adding DeviceIntPtr parameter to cursor functions but animcur relies
	 on the core pointer right now.

xfixes: adding DeviceIntPtr parameter to cursor functions but xfixes relies on
	the core pointer right now.

rac:	adding DeviceIntPtr parameter to cursor functions but RAC relies on
	the core pointer right now.

ramdac:	adding DeviceIntPtr parameter to cursor functions but ramdac relies on
	the core pointer right now.
This commit is contained in:
Peter Hutterer 2006-11-23 17:15:14 +10:30 • committed by Peter Hutterer
commit 1c7568b8a1
22 changed files with 466 additions and 269 deletions

View file

@ -69,7 +69,7 @@ typedef struct {
static Bool xf86CursorOffScreen(ScreenPtr *pScreen, int *x, int *y);
static void xf86CrossScreen(ScreenPtr pScreen, Bool entering);
static void xf86WarpCursor(ScreenPtr pScreen, int x, int y);
static void xf86WarpCursor(DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y);
static void xf86PointerMoved(int scrnIndex, int x, int y);
@ -269,7 +269,7 @@ xf86SwitchMode(ScreenPtr pScreen, DisplayModePtr mode)
(*pScr->AdjustFrame)(pScr->scrnIndex, pScr->frameX0, pScr->frameY0, 0);
if (pScreen == pCursorScreen)
xf86WarpCursor(pScreen, px, py);
xf86WarpCursor(inputInfo.pointer, pScreen, px, py);
return Switched;
}
@ -430,11 +430,11 @@ xf86CrossScreen (ScreenPtr pScreen, Bool entering)
/* ARGSUSED */
static void
xf86WarpCursor (ScreenPtr pScreen, int x, int y)
xf86WarpCursor (DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y)
{
int sigstate;
sigstate = xf86BlockSIGIO ();
miPointerWarpCursor(pScreen,x,y);
miPointerWarpCursor(pDev, pScreen,x,y);
xf86Info.currentScreen = pScreen;
xf86UnblockSIGIO (sigstate);