input: move proximity state into ProximityClassRec.
Previously the OutOfProximity bit in the valuator mode. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
This commit is contained in:
parent
e909af88bf
commit
5cf3b654fc
|
@ -891,9 +891,9 @@ UpdateDeviceState(DeviceIntPtr device, DeviceEvent* event)
|
||||||
mask = PointerMotionMask | b->state | b->motionMask;
|
mask = PointerMotionMask | b->state | b->motionMask;
|
||||||
SetMaskForEvent(device->id, mask, MotionNotify);
|
SetMaskForEvent(device->id, mask, MotionNotify);
|
||||||
} else if (event->type == ET_ProximityIn)
|
} else if (event->type == ET_ProximityIn)
|
||||||
device->valuator->mode &= ~OutOfProximity;
|
device->proximity->in_proximity = TRUE;
|
||||||
else if (event->type == ET_ProximityOut)
|
else if (event->type == ET_ProximityOut)
|
||||||
device->valuator->mode |= OutOfProximity;
|
device->proximity->in_proximity = FALSE;
|
||||||
|
|
||||||
return DEFAULT;
|
return DEFAULT;
|
||||||
}
|
}
|
||||||
|
@ -1112,6 +1112,7 @@ InitProximityClassDeviceStruct(DeviceIntPtr dev)
|
||||||
if (!proxc)
|
if (!proxc)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
proxc->sourceid = dev->id;
|
proxc->sourceid = dev->id;
|
||||||
|
proxc->in_proximity = TRUE;
|
||||||
dev->proximity = proxc;
|
dev->proximity = proxc;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
@ -1145,6 +1146,9 @@ InitValuatorAxisStruct(DeviceIntPtr dev, int axnum, Atom label, int minval, int
|
||||||
ax->max_resolution = max_res;
|
ax->max_resolution = max_res;
|
||||||
ax->label = label;
|
ax->label = label;
|
||||||
ax->mode = mode;
|
ax->mode = mode;
|
||||||
|
|
||||||
|
if (mode & OutOfProximity)
|
||||||
|
dev->proximity->in_proximity = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
|
@ -151,7 +151,7 @@ ProcXQueryDeviceState(ClientPtr client)
|
||||||
tv->class = ValuatorClass;
|
tv->class = ValuatorClass;
|
||||||
tv->length = sizeof(xValuatorState) + v->numAxes * 4;
|
tv->length = sizeof(xValuatorState) + v->numAxes * 4;
|
||||||
tv->num_valuators = v->numAxes;
|
tv->num_valuators = v->numAxes;
|
||||||
tv->mode = v->mode;
|
tv->mode |= (dev->proximity && !dev->proximity->in_proximity) ? OutOfProximity : 0;
|
||||||
buf += sizeof(xValuatorState);
|
buf += sizeof(xValuatorState);
|
||||||
for (i = 0, values = v->axisVal; i < v->numAxes; i++) {
|
for (i = 0, values = v->axisVal; i < v->numAxes; i++) {
|
||||||
if (rc != BadAccess)
|
if (rc != BadAccess)
|
||||||
|
|
|
@ -1251,9 +1251,12 @@ InitValuatorClassDeviceStruct(DeviceIntPtr dev, int numAxes, Atom *labels,
|
||||||
valc->numMotionEvents = numMotionEvents;
|
valc->numMotionEvents = numMotionEvents;
|
||||||
valc->motionHintWindow = NullWindow;
|
valc->motionHintWindow = NullWindow;
|
||||||
valc->numAxes = numAxes;
|
valc->numAxes = numAxes;
|
||||||
valc->mode = mode;
|
|
||||||
valc->axes = (AxisInfoPtr)(valc + 1);
|
valc->axes = (AxisInfoPtr)(valc + 1);
|
||||||
valc->axisVal = (double *)(valc->axes + numAxes);
|
valc->axisVal = (double *)(valc->axes + numAxes);
|
||||||
|
|
||||||
|
if (mode & OutOfProximity)
|
||||||
|
InitProximityClassDeviceStruct(dev);
|
||||||
|
|
||||||
dev->valuator = valc;
|
dev->valuator = valc;
|
||||||
|
|
||||||
AllocateMotionHistory(dev);
|
AllocateMotionHistory(dev);
|
||||||
|
|
|
@ -273,7 +273,7 @@ typedef struct _FocusClassRec {
|
||||||
|
|
||||||
typedef struct _ProximityClassRec {
|
typedef struct _ProximityClassRec {
|
||||||
int sourceid;
|
int sourceid;
|
||||||
char pad;
|
char in_proximity;
|
||||||
} ProximityClassRec, *ProximityClassPtr;
|
} ProximityClassRec, *ProximityClassPtr;
|
||||||
|
|
||||||
typedef struct _AbsoluteClassRec {
|
typedef struct _AbsoluteClassRec {
|
||||||
|
|
Loading…
Reference in New Issue