XineramaSetCursorPosition: use screen bounds directly, not POINT_IN_REGION.
This hides a MAXSCREENS-sized array as an implementation detail of panoramiX.c rather than an exported global. Signed-off-by: Jamey Sharp <jamey@minilop.net> Reviewed-by: Tiago Vignatti <tiago.vignatti@nokia.com> Tested-by: Tiago Vignatti <tiago.vignatti@nokia.com> (i686 GNU/Linux)
This commit is contained in:
parent
a83cff9f4d
commit
a0456da339
|
@ -119,7 +119,7 @@ typedef struct {
|
|||
CloseScreenProcPtr CloseScreen;
|
||||
} PanoramiXScreenRec, *PanoramiXScreenPtr;
|
||||
|
||||
RegionRec XineramaScreenRegions[MAXSCREENS];
|
||||
static RegionRec XineramaScreenRegions[MAXSCREENS];
|
||||
|
||||
static void XineramaValidateGC(GCPtr, unsigned long, DrawablePtr);
|
||||
static void XineramaChangeGC(GCPtr, unsigned long);
|
||||
|
|
|
@ -21,8 +21,6 @@ extern _X_EXPORT int XineramaDeleteResource(pointer, XID);
|
|||
|
||||
extern _X_EXPORT void XineramaReinitData(ScreenPtr);
|
||||
|
||||
extern _X_EXPORT RegionRec XineramaScreenRegions[MAXSCREENS];
|
||||
|
||||
extern _X_EXPORT unsigned long XRC_DRAWABLE;
|
||||
extern _X_EXPORT unsigned long XRT_WINDOW;
|
||||
extern _X_EXPORT unsigned long XRT_PIXMAP;
|
||||
|
|
13
dix/events.c
13
dix/events.c
|
@ -485,6 +485,13 @@ SyntheticMotion(DeviceIntPtr dev, int x, int y) {
|
|||
#ifdef PANORAMIX
|
||||
static void PostNewCursor(DeviceIntPtr pDev);
|
||||
|
||||
static Bool
|
||||
pointOnScreen(ScreenPtr pScreen, int x, int y)
|
||||
{
|
||||
return x >= pScreen->x && x < pScreen->x + pScreen->width &&
|
||||
y >= pScreen->y && y < pScreen->y + pScreen->height;
|
||||
}
|
||||
|
||||
static Bool
|
||||
XineramaSetCursorPosition(
|
||||
DeviceIntPtr pDev,
|
||||
|
@ -493,7 +500,6 @@ XineramaSetCursorPosition(
|
|||
Bool generateEvent
|
||||
){
|
||||
ScreenPtr pScreen;
|
||||
BoxRec box;
|
||||
int i;
|
||||
SpritePtr pSprite = pDev->spriteInfo->sprite;
|
||||
|
||||
|
@ -505,14 +511,13 @@ XineramaSetCursorPosition(
|
|||
x += screenInfo.screens[0]->x;
|
||||
y += screenInfo.screens[0]->y;
|
||||
|
||||
if(!POINT_IN_REGION(pScreen, &XineramaScreenRegions[pScreen->myNum],
|
||||
x, y, &box))
|
||||
if(!pointOnScreen(pScreen, x, y))
|
||||
{
|
||||
FOR_NSCREENS(i)
|
||||
{
|
||||
if(i == pScreen->myNum)
|
||||
continue;
|
||||
if(POINT_IN_REGION(pScreen, &XineramaScreenRegions[i], x, y, &box))
|
||||
if(pointOnScreen(screenInfo.screens[i], x, y))
|
||||
{
|
||||
pScreen = screenInfo.screens[i];
|
||||
break;
|
||||
|
|
Loading…
Reference in New Issue