summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2010-10-27 15:05:09 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2011-05-20 14:28:58 +1000
commit7bbaae88e645ec561adaa168deab9d9d1faa6d7f (patch)
tree0748593535cfbdb6d4f2d9ec2e646e9d1d9a9c66
parentecb2f343183be6db666373f3f57937edf307469f (diff)
downloadxf86-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.c15
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.