aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/hw/xnest/Pointer.c
diff options
context:
space:
mode:
Diffstat (limited to 'xorg-server/hw/xnest/Pointer.c')
-rw-r--r--xorg-server/hw/xnest/Pointer.c21
1 files changed, 19 insertions, 2 deletions
diff --git a/xorg-server/hw/xnest/Pointer.c b/xorg-server/hw/xnest/Pointer.c
index 8f764a624..4de467391 100644
--- a/xorg-server/hw/xnest/Pointer.c
+++ b/xorg-server/hw/xnest/Pointer.c
@@ -33,6 +33,9 @@ is" without express or implied warranty.
#include "Pointer.h"
#include "Args.h"
+#include "xserver-properties.h"
+#include "exevents.h" /* For XIGetKnownProperty */
+
DeviceIntPtr xnestPointerDevice = NULL;
void
@@ -46,6 +49,8 @@ int
xnestPointerProc(DeviceIntPtr pDev, int onoff)
{
CARD8 map[MAXBUTTONS];
+ Atom btn_labels[MAXBUTTONS] = {0};
+ Atom axes_labels[2] = {0};
int nmap;
int i;
@@ -55,9 +60,21 @@ xnestPointerProc(DeviceIntPtr pDev, int onoff)
nmap = XGetPointerMapping(xnestDisplay, map, MAXBUTTONS);
for (i = 0; i <= nmap; i++)
map[i] = i; /* buttons are already mapped */
- InitPointerDeviceStruct(&pDev->public, map, nmap,
+
+ btn_labels[0] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_LEFT);
+ btn_labels[1] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_MIDDLE);
+ btn_labels[2] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_RIGHT);
+ btn_labels[3] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_WHEEL_UP);
+ btn_labels[4] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_WHEEL_DOWN);
+ btn_labels[5] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_HWHEEL_LEFT);
+ btn_labels[6] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_HWHEEL_RIGHT);
+
+ axes_labels[0] = XIGetKnownProperty(AXIS_LABEL_PROP_REL_X);
+ axes_labels[1] = XIGetKnownProperty(AXIS_LABEL_PROP_REL_Y);
+
+ InitPointerDeviceStruct(&pDev->public, map, nmap, btn_labels,
xnestChangePointerControl,
- GetMotionHistorySize(), 2);
+ GetMotionHistorySize(), 2, axes_labels);
break;
case DEVICE_ON:
xnestEventMask |= XNEST_POINTER_EVENT_MASK;