Merge remote-tracking branch 'whot/for-keith'
This commit is contained in:
commit
a22486f848
72
Xi/chgdctl.c
72
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
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
73
Xi/getdctl.c
73
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;
|
||||
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;
|
||||
|
|
10
Xi/stubs.c
10
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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -1336,34 +1336,10 @@ InitPointerAccelerationScheme(DeviceIntPtr dev,
|
|||
Bool
|
||||
InitAbsoluteClassDeviceStruct(DeviceIntPtr dev)
|
||||
{
|
||||
AbsoluteClassPtr abs;
|
||||
|
||||
abs = malloc(sizeof(AbsoluteClassRec));
|
||||
if (!abs)
|
||||
/* 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;
|
||||
|
||||
/* 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;
|
||||
}
|
||||
|
||||
Bool
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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(
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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@
|
||||
|
|
|
@ -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@
|
||||
|
|
Loading…
Reference in New Issue
Block a user