xserver-multidpi/Xi/xibarriers.h
Jasper St. Pierre 707b4dc61f barriers: Support line and ray barriers
This allows clients to add barriers that extend to the edge of the
screen. Clients are encouraged to use these instead of precise coordinates
in these cases to help prevent pointer leaks.

Signed-off-by: Jasper St. Pierre <jstpierre@mecheye.net>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2012-12-17 15:03:07 +10:00

46 lines
1005 B
C

#ifdef HAVE_DIX_CONFIG_H
#include <dix-config.h>
#endif
#ifndef _XIBARRIERS_H_
#define _XIBARRIERS_H_
#include "resource.h"
extern _X_EXPORT RESTYPE PointerBarrierType;
struct PointerBarrier {
INT16 x1, x2, y1, y2;
CARD32 directions;
};
int
barrier_get_direction(int, int, int, int);
BOOL
barrier_is_blocking(const struct PointerBarrier *, int, int, int, int,
double *);
BOOL
barrier_is_blocking_direction(const struct PointerBarrier *, int);
void
barrier_clamp_to_barrier(struct PointerBarrier *barrier, int dir, int *x,
int *y);
#include <xfixesint.h>
int
XICreatePointerBarrier(ClientPtr client,
xXFixesCreatePointerBarrierReq * stuff);
int
XIDestroyPointerBarrier(ClientPtr client,
xXFixesDestroyPointerBarrierReq * stuff);
Bool
XIBarrierInit(void);
int SProcXIBarrierReleasePointer(ClientPtr client);
int ProcXIBarrierReleasePointer(ClientPtr client);
#endif /* _XIBARRIERS_H_ */