Merge "Use previous pressure value if the current fusion data is zero." into mnc-dev
This commit is contained in:
commit
4866f08718
|
@ -4076,14 +4076,20 @@ void TouchInputMapper::applyExternalStylusButtonState(nsecs_t when) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void TouchInputMapper::applyExternalStylusTouchState(nsecs_t when) {
|
void TouchInputMapper::applyExternalStylusTouchState(nsecs_t when) {
|
||||||
CookedPointerData& cpd = mCurrentCookedState.cookedPointerData;
|
CookedPointerData& currentPointerData = mCurrentCookedState.cookedPointerData;
|
||||||
if (mExternalStylusId != -1 && cpd.isTouching(mExternalStylusId)) {
|
const CookedPointerData& lastPointerData = mLastCookedState.cookedPointerData;
|
||||||
if (mExternalStylusState.pressure != 0.0f) {
|
|
||||||
PointerCoords& coords = cpd.editPointerCoordsWithId(mExternalStylusId);
|
|
||||||
coords.setAxisValue(AMOTION_EVENT_AXIS_PRESSURE, mExternalStylusState.pressure);
|
|
||||||
}
|
|
||||||
|
|
||||||
PointerProperties& properties = cpd.editPointerPropertiesWithId(mExternalStylusId);
|
if (mExternalStylusId != -1 && currentPointerData.isTouching(mExternalStylusId)) {
|
||||||
|
float pressure = mExternalStylusState.pressure;
|
||||||
|
if (pressure == 0.0f && lastPointerData.isTouching(mExternalStylusId)) {
|
||||||
|
const PointerCoords& coords = lastPointerData.pointerCoordsForId(mExternalStylusId);
|
||||||
|
pressure = coords.getAxisValue(AMOTION_EVENT_AXIS_PRESSURE);
|
||||||
|
}
|
||||||
|
PointerCoords& coords = currentPointerData.editPointerCoordsWithId(mExternalStylusId);
|
||||||
|
coords.setAxisValue(AMOTION_EVENT_AXIS_PRESSURE, pressure);
|
||||||
|
|
||||||
|
PointerProperties& properties =
|
||||||
|
currentPointerData.editPointerPropertiesWithId(mExternalStylusId);
|
||||||
if (mExternalStylusState.toolType != AMOTION_EVENT_TOOL_TYPE_UNKNOWN) {
|
if (mExternalStylusState.toolType != AMOTION_EVENT_TOOL_TYPE_UNKNOWN) {
|
||||||
properties.toolType = mExternalStylusState.toolType;
|
properties.toolType = mExternalStylusState.toolType;
|
||||||
}
|
}
|
||||||
|
|
|
@ -881,11 +881,11 @@ struct CookedPointerData {
|
||||||
return pointerProperties[idToIndex[id]];
|
return pointerProperties[idToIndex[id]];
|
||||||
}
|
}
|
||||||
|
|
||||||
inline bool isHovering(uint32_t pointerIndex) {
|
inline bool isHovering(uint32_t pointerIndex) const {
|
||||||
return hoveringIdBits.hasBit(pointerProperties[pointerIndex].id);
|
return hoveringIdBits.hasBit(pointerProperties[pointerIndex].id);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline bool isTouching(uint32_t pointerIndex) {
|
inline bool isTouching(uint32_t pointerIndex) const {
|
||||||
return touchingIdBits.hasBit(pointerProperties[pointerIndex].id);
|
return touchingIdBits.hasBit(pointerProperties[pointerIndex].id);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue