[PATCH xinput] Handle XA_CARDINAL as property type
Chase Douglas
chase.douglas at canonical.com
Wed Feb 22 16:26:24 PST 2012
On 02/21/2012 02:57 AM, Peter Hutterer wrote:
> Signed-off-by: Peter Hutterer<peter.hutterer at who-t.net>
> ---
> src/property.c | 32 ++++++++++++++++++++++++++++++--
> 1 files changed, 30 insertions(+), 2 deletions(-)
>
> diff --git a/src/property.c b/src/property.c
> index 7723445..3ab2cb0 100644
> --- a/src/property.c
> +++ b/src/property.c
> @@ -97,6 +97,20 @@ print_property(Display *dpy, XDevice* dev, Atom property)
> break;
> }
> break;
> + case XA_CARDINAL:
> + switch(act_format)
> + {
> + case 8:
> + printf("%u", *((unsigned char*)ptr));
> + break;
> + case 16:
> + printf("%u", *((unsigned short*)ptr));
> + break;
> + case 32:
> + printf("%lu", *((unsigned long*)ptr));
I think a comment here would help, even if it's just "This really isn't
a bug, 32 format properties are 64-bits on 64-bit machines!" Super ugly...
> + break;
> + }
> + break;
> case XA_STRING:
> if (act_format != 8)
> {
> @@ -353,7 +367,7 @@ do_set_prop_xi1(Display *dpy, Atom type, int format, int argc, char **argv, char
>
> for (i = 0; i< nelements; i++)
> {
> - if (type == XA_INTEGER) {
> + if (type == XA_INTEGER || type == XA_CARDINAL) {
> switch (format)
> {
> case 8:
> @@ -443,6 +457,20 @@ print_property_xi2(Display *dpy, int deviceid, Atom property)
> break;
> }
> break;
> + case XA_CARDINAL:
> + switch(act_format)
> + {
> + case 8:
> + printf("%u", *((uint8_t*)ptr));
> + break;
> + case 16:
> + printf("%u", *((uint16_t*)ptr));
> + break;
> + case 32:
> + printf("%u", *((uint32_t*)ptr));
> + break;
> + }
> + break;
> case XA_STRING:
> if (act_format != 8)
> {
> @@ -626,7 +654,7 @@ do_set_prop_xi2(Display *dpy, Atom type, int format, int argc, char **argv, char
>
> for (i = 0; i< nelements; i++)
> {
> - if (type == XA_INTEGER) {
> + if (type == XA_INTEGER || type == XA_CARDINAL) {
> switch (format)
> {
> case 8:
Otherwise,
Reviewed-by: Chase Douglas <chase.douglas at canonical.com>
More information about the xorg-devel
mailing list