cursor: Clean up pointer barrier creation code a tiny bit
This will make it much simpler when we add more error paths to the code that constructs pointer barrier clients. Signed-off-by: Jasper St. Pierre <jstpierre@mecheye.net> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
parent
04c885de71
commit
1536bc2d21
|
@ -1245,14 +1245,20 @@ CursorConstrainCursorHarder(DeviceIntPtr dev, ScreenPtr screen, int mode,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct PointerBarrierClient *
|
static int
|
||||||
CreatePointerBarrierClient(ScreenPtr screen, ClientPtr client,
|
CreatePointerBarrierClient(ScreenPtr screen, ClientPtr client,
|
||||||
xXFixesCreatePointerBarrierReq * stuff)
|
xXFixesCreatePointerBarrierReq * stuff,
|
||||||
|
PointerBarrierClientPtr *client_out)
|
||||||
{
|
{
|
||||||
CursorScreenPtr cs = GetCursorScreen(screen);
|
CursorScreenPtr cs = GetCursorScreen(screen);
|
||||||
struct PointerBarrierClient *ret = malloc(sizeof(*ret));
|
struct PointerBarrierClient *ret = malloc(sizeof(*ret));
|
||||||
|
|
||||||
if (ret) {
|
*client_out = NULL;
|
||||||
|
|
||||||
|
if (!ret) {
|
||||||
|
return BadAlloc;
|
||||||
|
}
|
||||||
|
|
||||||
ret->screen = screen;
|
ret->screen = screen;
|
||||||
ret->barrier.x1 = min(stuff->x1, stuff->x2);
|
ret->barrier.x1 = min(stuff->x1, stuff->x2);
|
||||||
ret->barrier.x2 = max(stuff->x1, stuff->x2);
|
ret->barrier.x2 = max(stuff->x1, stuff->x2);
|
||||||
|
@ -1264,9 +1270,9 @@ CreatePointerBarrierClient(ScreenPtr screen, ClientPtr client,
|
||||||
if (barrier_is_vertical(&ret->barrier))
|
if (barrier_is_vertical(&ret->barrier))
|
||||||
ret->barrier.directions &= ~(BarrierPositiveY | BarrierNegativeY);
|
ret->barrier.directions &= ~(BarrierPositiveY | BarrierNegativeY);
|
||||||
xorg_list_add(&ret->entry, &cs->barriers);
|
xorg_list_add(&ret->entry, &cs->barriers);
|
||||||
}
|
|
||||||
|
|
||||||
return ret;
|
*client_out = ret;
|
||||||
|
return Success;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
|
@ -1304,9 +1310,9 @@ ProcXFixesCreatePointerBarrier(ClientPtr client)
|
||||||
if (barrier_is_horizontal(&b) && barrier_is_vertical(&b))
|
if (barrier_is_horizontal(&b) && barrier_is_vertical(&b))
|
||||||
return BadValue;
|
return BadValue;
|
||||||
|
|
||||||
if (!(barrier = CreatePointerBarrierClient(pWin->drawable.pScreen,
|
if ((err = CreatePointerBarrierClient(pWin->drawable.pScreen,
|
||||||
client, stuff)))
|
client, stuff, &barrier)))
|
||||||
return BadAlloc;
|
return err;
|
||||||
|
|
||||||
if (!AddResource(stuff->barrier, PointerBarrierType, &barrier->barrier))
|
if (!AddResource(stuff->barrier, PointerBarrierType, &barrier->barrier))
|
||||||
return BadAlloc;
|
return BadAlloc;
|
||||||
|
|
Loading…
Reference in New Issue