if (!fallback_flush_st_up(dispatch, device, time))
sent_event = EVDEV_NONE;
break;
+ case EVDEV_ABSOLUTE_MT_AUX:
+ slot_idx = dispatch->mt.slot;
+ fallback_flush_extra_aux_data(dispatch,
+ device,
+ time,
+ dispatch->pending_event,
+ slot_idx,
+ dispatch->mt.slots[slot_idx].seat_slot);
+ break;
default:
assert(0 && "Unknown pending event type");
break;
case ABS_MT_POSITION_X:
evdev_device_check_abs_axis_range(device, e->code, e->value);
dispatch->mt.slots[dispatch->mt.slot].point.x = e->value;
- if (dispatch->pending_event == EVDEV_NONE)
+ if (dispatch->pending_event == EVDEV_NONE ||
+ dispatch->pending_event == EVDEV_ABSOLUTE_MT_AUX)
dispatch->pending_event = EVDEV_ABSOLUTE_MT_MOTION;
break;
case ABS_MT_POSITION_Y:
evdev_device_check_abs_axis_range(device, e->code, e->value);
dispatch->mt.slots[dispatch->mt.slot].point.y = e->value;
- if (dispatch->pending_event == EVDEV_NONE)
+ if (dispatch->pending_event == EVDEV_NONE ||
+ dispatch->pending_event == EVDEV_ABSOLUTE_MT_AUX)
dispatch->pending_event = EVDEV_ABSOLUTE_MT_MOTION;
break;
case ABS_MT_TOUCH_MAJOR:
dispatch->mt.slots[dispatch->mt.slot].area.major = e->value;
- if (dispatch->pending_event == EVDEV_NONE)
+ if (dispatch->pending_event == EVDEV_NONE ||
+ dispatch->pending_event == EVDEV_ABSOLUTE_MT_AUX)
dispatch->pending_event = EVDEV_ABSOLUTE_MT_MOTION;
break;
case ABS_MT_TOUCH_MINOR:
dispatch->mt.slots[dispatch->mt.slot].area.minor = e->value;
- if (dispatch->pending_event == EVDEV_NONE)
+ if (dispatch->pending_event == EVDEV_NONE ||
+ dispatch->pending_event == EVDEV_ABSOLUTE_MT_AUX)
dispatch->pending_event = EVDEV_ABSOLUTE_MT_MOTION;
break;
case ABS_MT_ORIENTATION:
dispatch->mt.slots[dispatch->mt.slot].area.orientation = e->value;
- if (dispatch->pending_event == EVDEV_NONE)
+ if (dispatch->pending_event == EVDEV_NONE ||
+ dispatch->pending_event == EVDEV_ABSOLUTE_MT_AUX)
dispatch->pending_event = EVDEV_ABSOLUTE_MT_MOTION;
break;
case ABS_MT_PRESSURE:
dispatch->mt.slots[dispatch->mt.slot].pressure = e->value;
- if (dispatch->pending_event == EVDEV_NONE)
+ if (dispatch->pending_event == EVDEV_NONE ||
+ dispatch->pending_event == EVDEV_ABSOLUTE_MT_AUX)
dispatch->pending_event = EVDEV_ABSOLUTE_MT_MOTION;
break;
default:
fallback_process_touch_extra_aux_data(dispatch, device, e);
+ if (dispatch->pending_event == EVDEV_NONE)
+ dispatch->pending_event = EVDEV_ABSOLUTE_MT_AUX;
break;
}
}