I just acked a similar patch from Peter because his addition of nitems
looked needed and I didn't have time to think in depth about earlier
patch that caused issue.

-       if (unset_prop)
+       if (unset_prop || nitems > 0)
               XChangeDeviceProperty(dpy, dev, prop, XA_INTEGER, 32,
                                       PropModeReplace,
                                       (unsigned char*)data, nitems);

After see'ing yours, I'm thinking maybe yours is right approach
although I still not time to think much on it.  When you want to
unset_prop, its a different function call to delete the property (if I
recall correctly).  So XChangeDeviceProperty() should be based on
!unset_prop.

Peter, hope you have time to investigate.  I kindly withdraw my ack on
other patch and let you and Jason figure it out.

Chris

On Fri, Mar 11, 2011 at 6:02 PM, Jason Gerecke <killert...@gmail.com> wrote:
> I just noticed I was unable to map button presses to keys and after
> some investigation (yay git bisect!) found the following commit
> caused the bug:
>
> 22bc3028effbdc79d426c0b3dcf586734d4c7532
>
> It appears the original comment accompaning the argc check was wrong.
> The original 'if' statement was "if (argc > 0)" which would imply
> XChangeDeviceProperty was to be called if we were *setting* a property,
> not *unsetting*.
>
> This patch should probably be checked more thoroughly since I haven't
> actually tried to figure out how this function works. At first glance,
> it seems like the first "nitems" hunk of 
> a6b9416148e5423c5a0c2632d88dbee5589615
> was actually on the right track...
>
> Signed-off-by: Jason Gerecke <killert...@gmail.com>
> ---
>  tools/xsetwacom.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/tools/xsetwacom.c b/tools/xsetwacom.c
> index 3435389..1d7265d 100644
> --- a/tools/xsetwacom.c
> +++ b/tools/xsetwacom.c
> @@ -1194,7 +1194,7 @@ static void special_map_property(Display *dpy, XDevice 
> *dev, Atom btnact_prop, i
>                        fprintf(stderr, "Cannot parse keyword '%s'\n", 
> words[i]);
>        }
>
> -       if (unset_prop)
> +       if (!unset_prop)
>                XChangeDeviceProperty(dpy, dev, prop, XA_INTEGER, 32,
>                                        PropModeReplace,
>                                        (unsigned char*)data, nitems);
> --
> 1.7.1
>
>
> ------------------------------------------------------------------------------
> Colocation vs. Managed Hosting
> A question and answer guide to determining the best fit
> for your organization - today and in the future.
> http://p.sf.net/sfu/internap-sfd2d
> _______________________________________________
> Linuxwacom-devel mailing list
> Linuxwacom-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel
>

------------------------------------------------------------------------------
Colocation vs. Managed Hosting
A question and answer guide to determining the best fit
for your organization - today and in the future.
http://p.sf.net/sfu/internap-sfd2d
_______________________________________________
Linuxwacom-devel mailing list
Linuxwacom-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel

Reply via email to