summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHenrik Rydberg <rydberg@alnilam.(none)>2010-02-01 20:31:05 +0100
committerHenrik Rydberg <rydberg@alnilam.(none)>2010-02-01 20:44:43 +0100
commitd1117c8645fc4c0e2ccf0873fcf692c3ffa8b139 (patch)
tree305af5f74b423d0cca74d5080ca4389b70255473 /src
parent011634a6f8df4fb6b6c24dc173680b96c7fb16f1 (diff)
button: simplify property mapping
Janitory changes only.
Diffstat (limited to 'src')
-rw-r--r--src/gestures.h1
-rw-r--r--src/multitouch.c59
2 files changed, 19 insertions, 41 deletions
diff --git a/src/gestures.h b/src/gestures.h
index f83cae2..0e2a49e 100644
--- a/src/gestures.h
+++ b/src/gestures.h
@@ -30,7 +30,6 @@
30#define GS_MOVE 1 30#define GS_MOVE 1
31#define GS_VSCROLL 2 31#define GS_VSCROLL 2
32#define GS_HSCROLL 3 32#define GS_HSCROLL 3
33#define SYN_MAX_BUTTONS 12 /* Max number of mouse buttons */
34 33
35//////////////////////////////////////////////////////// 34////////////////////////////////////////////////////////
36 35
diff --git a/src/multitouch.c b/src/multitouch.c
index fa966ce..acaeea1 100644
--- a/src/multitouch.c
+++ b/src/multitouch.c
@@ -41,6 +41,9 @@ static const float hscroll_fraction = 0.2;
41#define TRACE2(format, arg1, arg2) xf86Msg(X_INFO, format, arg1, arg2) 41#define TRACE2(format, arg1, arg2) xf86Msg(X_INFO, format, arg1, arg2)
42#endif 42#endif
43 43
44// button mapping simplified
45#define PROPMAP(m, x, y) m[x] = XIGetKnownProperty(y)
46
44//////////////////////////////////////////////////////////////////////////// 47////////////////////////////////////////////////////////////////////////////
45 48
46static void pointer_control(DeviceIntPtr dev, PtrCtrl *ctrl) 49static void pointer_control(DeviceIntPtr dev, PtrCtrl *ctrl)
@@ -61,45 +64,24 @@ static int pointer_property(DeviceIntPtr dev,
61 64
62//////////////////////////////////////////////////////////////////////////// 65////////////////////////////////////////////////////////////////////////////
63 66
64
65
66#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7 67#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7
67static void InitAxesLabels(Atom *labels, int nlabels) 68static void initAxesLabels(Atom map[2])
68{ 69{
69 memset(labels, 0, nlabels * sizeof(Atom)); 70 memset(map, 0, 2 * sizeof(Atom));
70 switch(nlabels) 71 PROPMAP(map, 0, AXIS_LABEL_PROP_REL_X);
71 { 72 PROPMAP(map, 1, AXIS_LABEL_PROP_REL_Y);
72 default:
73 case 2:
74 labels[1] = XIGetKnownProperty(AXIS_LABEL_PROP_REL_Y);
75 case 1:
76 labels[0] = XIGetKnownProperty(AXIS_LABEL_PROP_REL_X);
77 break;
78 }
79} 73}
80 74
81static void InitButtonLabels(Atom *labels, int nlabels) 75static void initButtonLabels(Atom map[DIM_BUTTON])
82{ 76{
83 memset(labels, 0, nlabels * sizeof(Atom)); 77 memset(map, 0, DIM_BUTTON * sizeof(Atom));
84 switch(nlabels) 78 PROPMAP(map, MT_BUTTON_LEFT, BTN_LABEL_PROP_BTN_LEFT);
85 { 79 PROPMAP(map, MT_BUTTON_MIDDLE, BTN_LABEL_PROP_BTN_MIDDLE);
86 default: 80 PROPMAP(map, MT_BUTTON_RIGHT, BTN_LABEL_PROP_BTN_RIGHT);
87 case 7: 81 PROPMAP(map, MT_BUTTON_WHEEL_UP, BTN_LABEL_PROP_BTN_WHEEL_UP);
88 labels[6] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_HWHEEL_RIGHT); 82 PROPMAP(map, MT_BUTTON_WHEEL_DOWN, BTN_LABEL_PROP_BTN_WHEEL_DOWN);
89 case 6: 83 PROPMAP(map, MT_BUTTON_HWHEEL_LEFT, BTN_LABEL_PROP_BTN_HWHEEL_LEFT);
90 labels[5] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_HWHEEL_LEFT); 84 PROPMAP(map, MT_BUTTON_HWHEEL_RIGHT, BTN_LABEL_PROP_BTN_HWHEEL_RIGHT);
91 case 5:
92 labels[4] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_WHEEL_DOWN);
93 case 4:
94 labels[3] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_WHEEL_UP);
95 case 3:
96 labels[2] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_RIGHT);
97 case 2:
98 labels[1] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_MIDDLE);
99 case 1:
100 labels[0] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_LEFT);
101 break;
102 }
103} 85}
104#endif 86#endif
105 87
@@ -108,14 +90,11 @@ static int device_init(DeviceIntPtr dev, LocalDevicePtr local)
108 struct MTouch *mt = local->private; 90 struct MTouch *mt = local->private;
109 unsigned char btmap[DIM_BUTTON + 1]={0,1,2,3,4,5,6,7}; 91 unsigned char btmap[DIM_BUTTON + 1]={0,1,2,3,4,5,6,7};
110#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7 92#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7
111 Atom btn_labels[SYN_MAX_BUTTONS] = { 0 }; 93 Atom axes_labels[2], btn_labels[DIM_BUTTON];
112 Atom axes_labels[2] = { 0 }; 94 initAxesLabels(axes_labels);
113 95 initButtonLabels(btn_labels);
114 InitAxesLabels(axes_labels, 2);
115 InitButtonLabels(btn_labels, SYN_MAX_BUTTONS);
116#endif 96#endif
117 97
118
119 local->fd = xf86OpenSerial(local->options); 98 local->fd = xf86OpenSerial(local->options);
120 if (local->fd < 0) { 99 if (local->fd < 0) {
121 xf86Msg(X_ERROR, "multitouch: cannot open device\n"); 100 xf86Msg(X_ERROR, "multitouch: cannot open device\n");