Thank you Peter. That was quick! :) Favux
On Sun, Jan 9, 2011 at 8:29 PM, Peter Hutterer <[email protected]> wrote: > Xlib for XI 1 expects 32 bit properties as long, even if on the given > machine architecture the size of long is actually 64 bit. Hilarity ensues.n > > Convert the floats to longs before passing it to XChangeDeviceProperty. > > Signed-off-by: Peter Hutterer <[email protected]> > --- > this must be the 10th time this api stupidity has bitten me... > > sorry for the cross-post, patches should go to -devel but this is in > response to a -discuss thread. > > tools/xsetwacom.c | 9 ++++++++- > 1 files changed, 8 insertions(+), 1 deletions(-) > > diff --git a/tools/xsetwacom.c b/tools/xsetwacom.c > index 72c46ec..26d822f 100644 > --- a/tools/xsetwacom.c > +++ b/tools/xsetwacom.c > @@ -1966,13 +1966,15 @@ static void get_button(Display *dpy, XDevice *dev, > param_t *param, int argc, > XFlush(dpy); > } > > -static void _set_matrix_prop(Display *dpy, XDevice *dev, const float > matrix[9]) > +static void _set_matrix_prop(Display *dpy, XDevice *dev, const float > fmatrix[9]) > { > Atom matrix_prop = XInternAtom(dpy, "Coordinate Transformation > Matrix", True); > Atom type; > int format; > unsigned long nitems, bytes_after; > float *data; > + long matrix[9] = {0}; > + int i; > > if (!matrix_prop) > { > @@ -1980,6 +1982,11 @@ static void _set_matrix_prop(Display *dpy, XDevice > *dev, const float matrix[9]) > return; > } > > + /* XI1 expects 32 bit properties (including float) as long, > + * regardless of architecture */ > + for (i = 0; i < sizeof(matrix)/sizeof(matrix[0]); i++) > + *(float*)(matrix + i) = fmatrix[i]; > + > XGetDeviceProperty(dpy, dev, matrix_prop, 0, 9, False, > AnyPropertyType, &type, &format, &nitems, > &bytes_after, (unsigned char**)&data); > -- > 1.7.3.4 > > ------------------------------------------------------------------------------ Gaining the trust of online customers is vital for the success of any company that requires sensitive data to be transmitted over the Web. Learn how to best implement a security strategy that keeps consumers' information secure and instills the confidence they need to proceed with transactions. http://p.sf.net/sfu/oracle-sfdevnl _______________________________________________ Linuxwacom-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel
