summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2011-03-27 18:27:10 -0700
committerKeith Packard <keithp@keithp.com>2011-03-27 18:27:10 -0700
commita22486f848014000dc13dda470f77d4d8ea9e9f6 (patch)
treec7ac295dcd0774ed2e148636e16fd583217bc9c9
parent2ef4ff45ef1fcfc4967ebe3d550408769e5f6500 (diff)
parent633b81e8ba09cc6a1ea8b43f323874fda2cf0bde (diff)
Merge remote-tracking branch 'whot/for-keith'
-rw-r--r--Xi/chgdctl.c72
-rw-r--r--Xi/exevents.c24
-rw-r--r--Xi/getdctl.c75
-rw-r--r--Xi/stubs.c12
-rw-r--r--config/udev.c4
-rw-r--r--dix/devices.c32
-rw-r--r--hw/kdrive/src/kinput.c3
-rw-r--r--hw/xfree86/common/xf86Xinput.c6
-rw-r--r--hw/xquartz/darwin.c2
-rw-r--r--hw/xquartz/darwinXinput.c12
-rw-r--r--include/input.h5
-rw-r--r--include/inputstr.h25
-rw-r--r--test/Makefile.am4
-rw-r--r--test/xi2/Makefile.am4
14 files changed, 28 insertions, 252 deletions
diff --git a/Xi/chgdctl.c b/Xi/chgdctl.c
index 901a0e419..4c4aebac6 100644
--- a/Xi/chgdctl.c
+++ b/Xi/chgdctl.c
@@ -76,8 +76,6 @@ SProcXChangeDeviceControl(ClientPtr client)
{
char n;
xDeviceCtl *ctl;
- xDeviceAbsCalibCtl *calib;
- xDeviceAbsAreaCtl *area;
REQUEST(xChangeDeviceControlReq);
swaps(&stuff->length, n);
@@ -88,26 +86,7 @@ SProcXChangeDeviceControl(ClientPtr client)
swaps(&ctl->length, n);
switch(stuff->control) {
case DEVICE_ABS_CALIB:
- calib = (xDeviceAbsCalibCtl*)ctl;
- swaps(&calib->length, n);
- swapl(&calib->min_x, n);
- swapl(&calib->max_x, n);
- swapl(&calib->min_y, n);
- swapl(&calib->max_y, n);
- swapl(&calib->flip_x, n);
- swapl(&calib->flip_y, n);
- swapl(&calib->rotation, n);
- swapl(&calib->button_threshold, n);
- break;
case DEVICE_ABS_AREA:
- area = (xDeviceAbsAreaCtl*)ctl;
- swapl(&area->offset_x, n);
- swapl(&area->offset_y, n);
- swapl(&area->width, n);
- swapl(&area->height, n);
- swapl(&area->screen, n);
- swapl(&area->following, n);
- break;
case DEVICE_CORE:
case DEVICE_ENABLE:
case DEVICE_RESOLUTION:
@@ -134,8 +113,6 @@ ProcXChangeDeviceControl(ClientPtr client)
xChangeDeviceControlReply rep;
AxisInfoPtr a;
CARD32 *resolution;
- xDeviceAbsCalibCtl *calib;
- xDeviceAbsAreaCtl *area;
xDeviceEnableCtl *e;
devicePresenceNotify dpn;
@@ -193,53 +170,10 @@ ProcXChangeDeviceControl(ClientPtr client)
}
break;
case DEVICE_ABS_CALIB:
- calib = (xDeviceAbsCalibCtl *)&stuff[1];
-
- if (calib->button_threshold < 0 || calib->button_threshold > 255) {
- ret = BadValue;
- goto out;
- }
-
- status = ChangeDeviceControl(client, dev, (xDeviceCtl *) calib);
-
- if (status == Success) {
- dev->absolute->min_x = calib->min_x;
- dev->absolute->max_x = calib->max_x;
- dev->absolute->min_y = calib->min_y;
- dev->absolute->max_y = calib->max_y;
- dev->absolute->flip_x = calib->flip_x;
- dev->absolute->flip_y = calib->flip_y;
- dev->absolute->rotation = calib->rotation;
- dev->absolute->button_threshold = calib->button_threshold;
- ret = Success;
- } else if (status == DeviceBusy || status == BadValue) {
- rep.status = status;
- ret = Success;
- } else {
- ret = BadMatch;
- }
-
- break;
case DEVICE_ABS_AREA:
- area = (xDeviceAbsAreaCtl *)&stuff[1];
-
- status = ChangeDeviceControl(client, dev, (xDeviceCtl *) area);
-
- if (status == Success) {
- dev->absolute->offset_x = area->offset_x;
- dev->absolute->offset_y = area->offset_y;
- dev->absolute->width = area->width;
- dev->absolute->height = area->height;
- dev->absolute->screen = area->screen;
- dev->absolute->following = area->following;
- ret = Success;
- } else if (status == DeviceBusy || status == BadValue) {
- rep.status = status;
- ret = Success;
- } else {
- ret = Success;
- }
-
+ /* Calibration is now done through properties, and never had any effect
+ * on anything (in the open-source world). Thus, be honest. */
+ ret = BadMatch;
break;
case DEVICE_CORE:
/* Sorry, no device core switching no more. If you want a device to
diff --git a/Xi/exevents.c b/Xi/exevents.c
index c7089bb69..5b207bc4b 100644
--- a/Xi/exevents.c
+++ b/Xi/exevents.c
@@ -626,30 +626,6 @@ DeepCopyPointerClasses(DeviceIntPtr from, DeviceIntPtr to)
classes->proximity = to->proximity;
to->proximity = NULL;
}
-
- if (from->absolute)
- {
- if (!to->absolute)
- {
- classes = to->unused_classes;
- to->absolute = classes->absolute;
- if (!to->absolute)
- {
- to->absolute = calloc(1, sizeof(AbsoluteClassRec));
- if (!to->absolute)
- FatalError("[Xi] no memory for class shift.\n");
- } else
- classes->absolute = NULL;
- }
- memcpy(to->absolute, from->absolute, sizeof(AbsoluteClassRec));
- to->absolute->sourceid = from->id;
- } else if (to->absolute)
- {
- ClassesPtr classes;
- classes = to->unused_classes;
- classes->absolute = to->absolute;
- to->absolute = NULL;
- }
}
/**
diff --git a/Xi/getdctl.c b/Xi/getdctl.c
index 3e81e9479..4e04b8b06 100644
--- a/Xi/getdctl.c
+++ b/Xi/getdctl.c
@@ -118,64 +118,6 @@ CopySwapDeviceResolution(ClientPtr client, ValuatorClassPtr v, char *buf,
}
}
-static void CopySwapDeviceAbsCalib (ClientPtr client, AbsoluteClassPtr dts,
- char *buf)
-{
- char n;
- xDeviceAbsCalibState *calib = (xDeviceAbsCalibState *) buf;
-
- calib->control = DEVICE_ABS_CALIB;
- calib->length = sizeof(xDeviceAbsCalibState);
- calib->min_x = dts->min_x;
- calib->max_x = dts->max_x;
- calib->min_y = dts->min_y;
- calib->max_y = dts->max_y;
- calib->flip_x = dts->flip_x;
- calib->flip_y = dts->flip_y;
- calib->rotation = dts->rotation;
- calib->button_threshold = dts->button_threshold;
-
- if (client->swapped) {
- swaps(&calib->control, n);
- swaps(&calib->length, n);
- swapl(&calib->min_x, n);
- swapl(&calib->max_x, n);
- swapl(&calib->min_y, n);
- swapl(&calib->max_y, n);
- swapl(&calib->flip_x, n);
- swapl(&calib->flip_y, n);
- swapl(&calib->rotation, n);
- swapl(&calib->button_threshold, n);
- }
-}
-
-static void CopySwapDeviceAbsArea (ClientPtr client, AbsoluteClassPtr dts,
- char *buf)
-{
- char n;
- xDeviceAbsAreaState *area = (xDeviceAbsAreaState *) buf;
-
- area->control = DEVICE_ABS_AREA;
- area->length = sizeof(xDeviceAbsAreaState);
- area->offset_x = dts->offset_x;
- area->offset_y = dts->offset_y;
- area->width = dts->width;
- area->height = dts->height;
- area->screen = dts->screen;
- area->following = dts->following;
-
- if (client->swapped) {
- swaps(&area->control, n);
- swaps(&area->length, n);
- swapl(&area->offset_x, n);
- swapl(&area->offset_y, n);
- swapl(&area->width, n);
- swapl(&area->height, n);
- swapl(&area->screen, n);
- swapl(&area->following, n);
- }
-}
-
static void CopySwapDeviceCore (ClientPtr client, DeviceIntPtr dev, char *buf)
{
char n;
@@ -260,17 +202,8 @@ ProcXGetDeviceControl(ClientPtr client)
(3 * sizeof(int) * dev->valuator->numAxes);
break;
case DEVICE_ABS_CALIB:
- if (!dev->absolute)
- return BadMatch;
-
- total_length = sizeof(xDeviceAbsCalibState);
- break;
case DEVICE_ABS_AREA:
- if (!dev->absolute)
- return BadMatch;
-
- total_length = sizeof(xDeviceAbsAreaState);
- break;
+ return BadMatch;
case DEVICE_CORE:
total_length = sizeof(xDeviceCoreState);
break;
@@ -290,12 +223,6 @@ ProcXGetDeviceControl(ClientPtr client)
case DEVICE_RESOLUTION:
CopySwapDeviceResolution(client, dev->valuator, buf, total_length);
break;
- case DEVICE_ABS_CALIB:
- CopySwapDeviceAbsCalib(client, dev->absolute, buf);
- break;
- case DEVICE_ABS_AREA:
- CopySwapDeviceAbsArea(client, dev->absolute, buf);
- break;
case DEVICE_CORE:
CopySwapDeviceCore(client, dev, buf);
break;
diff --git a/Xi/stubs.c b/Xi/stubs.c
index d9e8eec72..6a4c18158 100644
--- a/Xi/stubs.c
+++ b/Xi/stubs.c
@@ -115,17 +115,7 @@ int
ChangeDeviceControl(ClientPtr client, DeviceIntPtr dev,
xDeviceCtl * control)
{
- switch (control->control) {
- case DEVICE_RESOLUTION:
- return BadMatch;
- case DEVICE_ABS_CALIB:
- case DEVICE_ABS_AREA:
- return BadMatch;
- case DEVICE_CORE:
- return BadMatch;
- default:
- return BadMatch;
- }
+ return BadMatch;
}
diff --git a/config/udev.c b/config/udev.c
index 678e47a39..9ac34ee50 100644
--- a/config/udev.c
+++ b/config/udev.c
@@ -255,6 +255,10 @@ wakeup_handler(pointer data, int err, pointer read_mask)
device_added(udev_device);
else if (!strcmp(action, "remove"))
device_removed(udev_device);
+ else if (!strcmp(action, "change")) {
+ device_removed(udev_device);
+ device_added(udev_device);
+ }
}
udev_device_unref(udev_device);
}
diff --git a/dix/devices.c b/dix/devices.c
index 636b1b661..534931c3e 100644
--- a/dix/devices.c
+++ b/dix/devices.c
@@ -1336,34 +1336,10 @@ InitPointerAccelerationScheme(DeviceIntPtr dev,
Bool
InitAbsoluteClassDeviceStruct(DeviceIntPtr dev)
{
- AbsoluteClassPtr abs;
-
- abs = malloc(sizeof(AbsoluteClassRec));
- if (!abs)
- return FALSE;
-
- /* we don't do anything sensible with these, but should */
- abs->min_x = NO_AXIS_LIMITS;
- abs->min_y = NO_AXIS_LIMITS;
- abs->max_x = NO_AXIS_LIMITS;
- abs->max_y = NO_AXIS_LIMITS;
- abs->flip_x = 0;
- abs->flip_y = 0;
- abs->rotation = 0;
- abs->button_threshold = 0;
-
- abs->offset_x = 0;
- abs->offset_y = 0;
- abs->width = NO_AXIS_LIMITS;
- abs->height = NO_AXIS_LIMITS;
- abs->following = 0;
- abs->screen = 0;
-
- abs->sourceid = dev->id;
-
- dev->absolute = abs;
-
- return TRUE;
+ /* This is an API-preserving noop. Instructions: Kill when no more drivers
+ * call it. The infrastructure behind hasn't really been used, so any calls
+ * are likely just a declaration that the device is absolute. */
+ return FALSE;
}
Bool
diff --git a/hw/kdrive/src/kinput.c b/hw/kdrive/src/kinput.c
index 608f3a725..e3bc4c523 100644
--- a/hw/kdrive/src/kinput.c
+++ b/hw/kdrive/src/kinput.c
@@ -477,7 +477,6 @@ KdPointerProc(DeviceIntPtr pDevice, int onoff)
free(axes_labels);
if (pi->inputClass == KD_TOUCHSCREEN) {
- InitAbsoluteClassDeviceStruct(pDevice);
xiclass = AtomFromName(XI_TOUCHSCREEN);
}
else {
@@ -2204,8 +2203,6 @@ ChangeDeviceControl(register ClientPtr client, DeviceIntPtr pDev,
case DEVICE_ABS_CALIB:
case DEVICE_ABS_AREA:
- return Success;
-
case DEVICE_CORE:
return BadMatch;
case DEVICE_ENABLE:
diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c
index e3264e6a9..ae22ef268 100644
--- a/hw/xfree86/common/xf86Xinput.c
+++ b/hw/xfree86/common/xf86Xinput.c
@@ -405,10 +405,10 @@ ChangeDeviceControl (ClientPtr client, DeviceIntPtr dev, xDeviceCtl *control)
if (!pInfo->control_proc) {
switch (control->control) {
case DEVICE_CORE:
- return BadMatch;
- case DEVICE_RESOLUTION:
case DEVICE_ABS_CALIB:
case DEVICE_ABS_AREA:
+ return BadMatch;
+ case DEVICE_RESOLUTION:
case DEVICE_ENABLE:
return Success;
default:
@@ -775,6 +775,8 @@ xf86NewInputDevice(InputInfoPtr pInfo, DeviceIntPtr *pdev, BOOL enable)
goto unwind;
}
+ xf86Msg(X_INFO, "Using input driver '%s' for '%s'\n", drv->driverName, pInfo->name);
+
if (!drv->PreInit) {
xf86Msg(X_ERROR,
"Input driver `%s' has no PreInit function (ignoring)\n",
diff --git a/hw/xquartz/darwin.c b/hw/xquartz/darwin.c
index 93697a994..33276c389 100644
--- a/hw/xquartz/darwin.c
+++ b/hw/xquartz/darwin.c
@@ -314,7 +314,6 @@ static int DarwinMouseProc(DeviceIntPtr pPointer, int what) {
(PtrCtrlProcPtr)NoopDDA,
GetMotionHistorySize(), NAXES,
axes_labels);
- InitAbsoluteClassDeviceStruct(pPointer);
// InitValuatorAxisStruct(pPointer, 0, 0, XQUARTZ_VALUATOR_LIMIT, 1, 0, 1, Absolute);
// InitValuatorAxisStruct(pPointer, 1, 0, XQUARTZ_VALUATOR_LIMIT, 1, 0, 1, Absolute);
break;
@@ -362,7 +361,6 @@ static int DarwinTabletProc(DeviceIntPtr pPointer, int what) {
GetMotionHistorySize(), NAXES,
axes_labels);
InitProximityClassDeviceStruct(pPointer);
- InitAbsoluteClassDeviceStruct(pPointer);
InitValuatorAxisStruct(pPointer, 0, axes_labels[0], 0, XQUARTZ_VALUATOR_LIMIT, 1, 0, 1, Absolute);
InitValuatorAxisStruct(pPointer, 1, axes_labels[1], 0, XQUARTZ_VALUATOR_LIMIT, 1, 0, 1, Absolute);
diff --git a/hw/xquartz/darwinXinput.c b/hw/xquartz/darwinXinput.c
index 8bb83ca37..3ef34fec0 100644
--- a/hw/xquartz/darwinXinput.c
+++ b/hw/xquartz/darwinXinput.c
@@ -117,17 +117,7 @@ ChangeDeviceControl(ClientPtr client, DeviceIntPtr dev,
{
DEBUG_LOG("ChangeDeviceControl(%p, %p, %p)\n", client, dev, control);
- switch (control->control) {
- case DEVICE_RESOLUTION:
- return BadMatch;
- case DEVICE_ABS_CALIB:
- case DEVICE_ABS_AREA:
- return BadMatch;
- case DEVICE_CORE:
- return BadMatch;
- default:
- return BadMatch;
- }
+ return BadMatch;
}
diff --git a/include/input.h b/include/input.h
index bdef0389e..2bb85ffaa 100644
--- a/include/input.h
+++ b/include/input.h
@@ -311,7 +311,10 @@ extern _X_EXPORT Bool InitPointerAccelerationScheme(
DeviceIntPtr /*dev*/,
int /*scheme*/);
-extern _X_EXPORT Bool InitAbsoluteClassDeviceStruct(
+/**
+ * This is not implemented and just returns FALSE.
+ */
+extern _X_EXPORT _X_DEPRECATED Bool InitAbsoluteClassDeviceStruct(
DeviceIntPtr /*device*/);
extern _X_EXPORT Bool InitFocusClassDeviceStruct(
diff --git a/include/inputstr.h b/include/inputstr.h
index 8509eb024..f63df8087 100644
--- a/include/inputstr.h
+++ b/include/inputstr.h
@@ -317,27 +317,6 @@ typedef struct _ProximityClassRec {
char in_proximity;
} ProximityClassRec, *ProximityClassPtr;
-typedef struct _AbsoluteClassRec {
- int sourceid;
- /* Calibration. */
- int min_x;
- int max_x;
- int min_y;
- int max_y;
- int flip_x;
- int flip_y;
- int rotation;
- int button_threshold;
-
- /* Area. */
- int offset_x;
- int offset_y;
- int width;
- int height;
- int screen;
- XID following;
-} AbsoluteClassRec, *AbsoluteClassPtr;
-
typedef struct _KbdFeedbackClassRec *KbdFeedbackPtr;
typedef struct _PtrFeedbackClassRec *PtrFeedbackPtr;
typedef struct _IntegerFeedbackClassRec *IntegerFeedbackPtr;
@@ -392,7 +371,7 @@ typedef struct _ClassesRec {
ButtonClassPtr button;
FocusClassPtr focus;
ProximityClassPtr proximity;
- AbsoluteClassPtr absolute;
+ void* _pad0; /* keep ABI during AbsoluteClass removal */
KbdFeedbackPtr kbdfeed;
PtrFeedbackPtr ptrfeed;
IntegerFeedbackPtr intfeed;
@@ -517,7 +496,7 @@ typedef struct _DeviceIntRec {
ButtonClassPtr button;
FocusClassPtr focus;
ProximityClassPtr proximity;
- AbsoluteClassPtr absolute;
+ void* _pad0; /* keep ABI, was pointer to abs class */
KbdFeedbackPtr kbdfeed;
PtrFeedbackPtr ptrfeed;
IntegerFeedbackPtr intfeed;
diff --git a/test/Makefile.am b/test/Makefile.am
index 34f21d7ed..f3265b788 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -2,10 +2,10 @@ if ENABLE_UNIT_TESTS
if HAVE_GLIB
if HAVE_LD_WRAP
SUBDIRS= . xi2
-check_PROGRAMS = xkb input xtest list
+noinst_PROGRAMS = xkb input xtest list
check_LTLIBRARIES = libxservertest.la
-TESTS=$(check_PROGRAMS)
+TESTS=$(noinst_PROGRAMS)
AM_CFLAGS = $(DIX_CFLAGS) $(GLIB_CFLAGS) @XORG_CFLAGS@
INCLUDES = @XORG_INCS@
diff --git a/test/xi2/Makefile.am b/test/xi2/Makefile.am
index e19786973..1b9bfe08e 100644
--- a/test/xi2/Makefile.am
+++ b/test/xi2/Makefile.am
@@ -1,7 +1,7 @@
if ENABLE_UNIT_TESTS
if HAVE_GLIB
if HAVE_LD_WRAP
-check_PROGRAMS = \
+noinst_PROGRAMS = \
protocol-xiqueryversion \
protocol-xiquerydevice \
protocol-xiselectevents \
@@ -12,7 +12,7 @@ check_PROGRAMS = \
protocol-xiwarppointer \
protocol-eventconvert
-TESTS=$(check_PROGRAMS)
+TESTS=$(noinst_PROGRAMS)
AM_CFLAGS = $(DIX_CFLAGS) $(GLIB_CFLAGS) @XORG_CFLAGS@
INCLUDES = @XORG_INCS@