diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2010-10-27 15:05:09 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2011-05-20 14:28:58 +1000 |
commit | 7bbaae88e645ec561adaa168deab9d9d1faa6d7f (patch) | |
tree | 0748593535cfbdb6d4f2d9ec2e646e9d1d9a9c66 | |
parent | ecb2f343183be6db666373f3f57937edf307469f (diff) | |
download | xf86-input-wacom-7bbaae88e645ec561adaa168deab9d9d1faa6d7f.tar.gz |
xsetwacom: unset special button mappings when switching to simple ones.
After a special button mapping was assigned, allow switching back to a
simple button mapping.
The following sequence now works:
xsetwacom set <device> Button1 key a b c
xsetwacom set <device> Button1 1
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit 3055c4cf8b1140bfb6e0a7c89da0eec4f306416d)
Conflicts:
tools/xsetwacom.c
-rw-r--r-- | tools/xsetwacom.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/tools/xsetwacom.c b/tools/xsetwacom.c index 3f0466d..1ad2ceb 100644 --- a/tools/xsetwacom.c +++ b/tools/xsetwacom.c @@ -1393,8 +1393,9 @@ static void special_map_buttons(Display *dpy, XDevice *dev, param_t* param, int if (btn_no > btnact_nitems) return; - /* some atom already assigned, modify that */ - if (btnact_data[btn_no]) + if (argc == 0) /* unset property */ + btnact_data[btn_no] = 0; + else if (btnact_data[btn_no]) /* some atom already assigned, modify that */ prop = btnact_data[btn_no]; else { @@ -1431,9 +1432,10 @@ static void special_map_buttons(Display *dpy, XDevice *dev, param_t* param, int } } - XChangeDeviceProperty(dpy, dev, prop, XA_INTEGER, 32, - PropModeReplace, - (unsigned char*)data, nitems); + if (argc > 0) /* unset property */ + XChangeDeviceProperty(dpy, dev, prop, XA_INTEGER, 32, + PropModeReplace, + (unsigned char*)data, nitems); if (need_update) XChangeDeviceProperty(dpy, dev, btnact_prop, XA_ATOM, 32, @@ -1464,6 +1466,9 @@ static void map_button_simple(Display *dpy, XDevice *dev, param_t* param, int bu map[btn_no - 1] = button; XSetDeviceButtonMapping(dpy, dev, map, nmap); XFlush(dpy); + + /* If there's a property set, unset it */ + special_map_buttons(dpy, dev, param, 0, NULL); } /* Supports three variations. |