On Mon, Mar 07, 2011 at 12:06:33PM -0500, Adam Jackson wrote: > v2: Use int * for device list, consistent with libXi. > > Signed-off-by: Adam Jackson <[email protected]> > --- > configure.ac | 2 +- > include/X11/extensions/Xfixes.h | 15 ++++++++++ > src/Cursor.c | 60 > +++++++++++++++++++++++++++++++++++++++ > 3 files changed, 76 insertions(+), 1 deletions(-) > > diff --git a/configure.ac b/configure.ac > index cf9a8d4..fc8c1e1 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -32,7 +32,7 @@ AC_PREREQ([2.60]) > # that 'revision' number appears in Xfixes.h and has to be manually > # synchronized. > # > -AC_INIT(libXfixes, [4.0.5], > +AC_INIT(libXfixes, [5.0], > [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [libXfixes]) > AC_CONFIG_SRCDIR([Makefile.am]) > AC_CONFIG_HEADERS([config.h]) > diff --git a/include/X11/extensions/Xfixes.h b/include/X11/extensions/Xfixes.h > index 0c00310..b39716a 100644 > --- a/include/X11/extensions/Xfixes.h > +++ b/include/X11/extensions/Xfixes.h > @@ -1,5 +1,6 @@ > /* > * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved. > + * Copyright 2010 Red Hat, Inc.
this should probably be 2011 by now Reviewed-by: Peter Hutterer <[email protected]> Cheers, Peter > --- > * > * Permission is hereby granted, free of charge, to any person obtaining a > * copy of this software and associated documentation files (the "Software"), > @@ -249,6 +250,20 @@ XFixesShowCursor (Display *dpy, Window win); > > #endif /* XFIXES_MAJOR >= 4 */ > > +#if XFIXES_MAJOR >= 5 > + > +typedef XID PointerBarrier; > + > +PointerBarrier > +XFixesCreatePointerBarrier(Display *dpy, Window w, int x1, int y1, > + int x2, int y2, int directions, > + int num_devices, int *devices); > + > +void > +XFixesDestroyPointerBarrier(Display *dpy, PointerBarrier b); > + > +#endif /* XFIXES_MAJOR >= 5 */ > + > _XFUNCPROTOEND > > #endif /* _XFIXES_H_ */ > diff --git a/src/Cursor.c b/src/Cursor.c > index edd179d..dea2292 100644 > --- a/src/Cursor.c > +++ b/src/Cursor.c > @@ -1,5 +1,6 @@ > /* > * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved. > + * Copyright 2010 Red Hat, Inc. > * > * Permission is hereby granted, free of charge, to any person obtaining a > * copy of this software and associated documentation files (the "Software"), > @@ -274,3 +275,62 @@ XFixesShowCursor (Display *dpy, Window win) > UnlockDisplay (dpy); > SyncHandle (); > } > + > +PointerBarrier > +XFixesCreatePointerBarrier(Display *dpy, Window w, int x1, int y1, > + int x2, int y2, int directions, > + int num_devices, int *devices) > +{ > + XFixesExtDisplayInfo *info = XFixesFindDisplay (dpy); > + xXFixesCreatePointerBarrierReq *req; > + PointerBarrier barrier; > + int extra = 0; > + > + XFixesCheckExtension (dpy, info, 0); > + if (info->major_version < 5) > + return 0; > + > + if (num_devices) > + extra = (((2 * num_devices) + 3) / 4) * 4; > + > + LockDisplay (dpy); > + GetReqExtra (XFixesCreatePointerBarrier, extra, req); > + req->reqType = info->codes->major_opcode; > + req->xfixesReqType = X_XFixesCreatePointerBarrier; > + barrier = req->barrier = XAllocID (dpy); > + req->window = w; > + req->x1 = x1; > + req->y1 = y1; > + req->x2 = x2; > + req->y2 = y2; > + req->directions = directions; > + if ((req->num_devices = num_devices)) { > + int i; > + CARD16 *devs = (CARD16 *)(req + 1); > + for (i = 0; i < num_devices; i++) > + devs[i] = (CARD16)(devices[i]); > + } > + > + UnlockDisplay (dpy); > + SyncHandle(); > + return barrier; > +} > + > +void > +XFixesDestroyPointerBarrier(Display *dpy, PointerBarrier b) > +{ > + XFixesExtDisplayInfo *info = XFixesFindDisplay (dpy); > + xXFixesDestroyPointerBarrierReq *req; > + > + XFixesSimpleCheckExtension (dpy, info); > + if (info->major_version < 5) > + return; > + > + LockDisplay (dpy); > + GetReq (XFixesDestroyPointerBarrier, req); > + req->reqType = info->codes->major_opcode; > + req->xfixesReqType = X_XFixesDestroyPointerBarrier; > + req->barrier = b; > + UnlockDisplay (dpy); > + SyncHandle(); > +} > -- > 1.7.3.5 _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
