Xi: process raw touch events
No-one can generated them yet, but if they could, we'd be processing them like there was no tomorrow. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
This commit is contained in:
parent
84db813b9d
commit
3390d3fc03
|
@ -1063,6 +1063,9 @@ ProcessOtherEvent(InternalEvent *ev, DeviceIntPtr device)
|
|||
case ET_RawButtonPress:
|
||||
case ET_RawButtonRelease:
|
||||
case ET_RawMotion:
|
||||
case ET_RawTouchBegin:
|
||||
case ET_RawTouchUpdate:
|
||||
case ET_RawTouchEnd:
|
||||
DeliverRawEvent(&ev->raw_event, device);
|
||||
break;
|
||||
default:
|
||||
|
|
|
@ -868,6 +868,9 @@ XI2EventSwap(xGenericEvent *from, xGenericEvent *to)
|
|||
case XI_RawKeyRelease:
|
||||
case XI_RawButtonPress:
|
||||
case XI_RawButtonRelease:
|
||||
case XI_RawTouchBegin:
|
||||
case XI_RawTouchUpdate:
|
||||
case XI_RawTouchEnd:
|
||||
SRawEvent((xXIRawEvent*)from, (xXIRawEvent*)to);
|
||||
break;
|
||||
default:
|
||||
|
|
|
@ -145,7 +145,10 @@ ProcXISelectEvents(ClientPtr client)
|
|||
BitIsOn(bits, XI_RawKeyRelease) ||
|
||||
BitIsOn(bits, XI_RawButtonPress) ||
|
||||
BitIsOn(bits, XI_RawButtonRelease) ||
|
||||
BitIsOn(bits, XI_RawMotion))
|
||||
BitIsOn(bits, XI_RawMotion) ||
|
||||
BitIsOn(bits, XI_RawTouchBegin) ||
|
||||
BitIsOn(bits, XI_RawTouchUpdate) ||
|
||||
BitIsOn(bits, XI_RawTouchEnd))
|
||||
{
|
||||
client->errorValue = XI_RawKeyPress;
|
||||
return BadValue;
|
||||
|
|
|
@ -158,6 +158,9 @@ EventToCore(InternalEvent *event, xEvent **core_out, int *count_out)
|
|||
case ET_RawButtonPress:
|
||||
case ET_RawButtonRelease:
|
||||
case ET_RawMotion:
|
||||
case ET_RawTouchBegin:
|
||||
case ET_RawTouchUpdate:
|
||||
case ET_RawTouchEnd:
|
||||
case ET_TouchBegin:
|
||||
case ET_TouchUpdate:
|
||||
case ET_TouchEnd:
|
||||
|
@ -211,6 +214,9 @@ EventToXI(InternalEvent *ev, xEvent **xi, int *count)
|
|||
case ET_RawButtonPress:
|
||||
case ET_RawButtonRelease:
|
||||
case ET_RawMotion:
|
||||
case ET_RawTouchBegin:
|
||||
case ET_RawTouchUpdate:
|
||||
case ET_RawTouchEnd:
|
||||
case ET_TouchBegin:
|
||||
case ET_TouchUpdate:
|
||||
case ET_TouchEnd:
|
||||
|
@ -270,6 +276,9 @@ EventToXI2(InternalEvent *ev, xEvent **xi)
|
|||
case ET_RawButtonPress:
|
||||
case ET_RawButtonRelease:
|
||||
case ET_RawMotion:
|
||||
case ET_RawTouchBegin:
|
||||
case ET_RawTouchUpdate:
|
||||
case ET_RawTouchEnd:
|
||||
return eventToRawEvent(&ev->raw_event, xi);
|
||||
default:
|
||||
break;
|
||||
|
@ -827,6 +836,9 @@ GetXI2Type(enum EventType type)
|
|||
case ET_RawButtonPress: xi2type = XI_RawButtonPress; break;
|
||||
case ET_RawButtonRelease: xi2type = XI_RawButtonRelease; break;
|
||||
case ET_RawMotion: xi2type = XI_RawMotion; break;
|
||||
case ET_RawTouchBegin: xi2type = XI_RawTouchBegin; break;
|
||||
case ET_RawTouchUpdate: xi2type = XI_RawTouchUpdate; break;
|
||||
case ET_RawTouchEnd: xi2type = XI_RawTouchEnd; break;
|
||||
case ET_FocusIn: xi2type = XI_FocusIn; break;
|
||||
case ET_FocusOut: xi2type = XI_FocusOut; break;
|
||||
case ET_TouchBegin: xi2type = XI_TouchBegin; break;
|
||||
|
|
|
@ -2463,6 +2463,9 @@ FixUpEventFromWindow(
|
|||
case XI_RawButtonPress:
|
||||
case XI_RawButtonRelease:
|
||||
case XI_RawMotion:
|
||||
case XI_RawTouchBegin:
|
||||
case XI_RawTouchUpdate:
|
||||
case XI_RawTouchEnd:
|
||||
case XI_DeviceChanged:
|
||||
case XI_HierarchyChanged:
|
||||
case XI_PropertyEvent:
|
||||
|
|
|
@ -161,7 +161,16 @@ init_raw(DeviceIntPtr dev, RawDeviceEvent *event, Time ms, int type, int detail)
|
|||
memset(event, 0, sizeof(RawDeviceEvent));
|
||||
event->header = ET_Internal;
|
||||
event->length = sizeof(RawDeviceEvent);
|
||||
event->type = ET_RawKeyPress - ET_KeyPress + type;
|
||||
switch(type) {
|
||||
case MotionNotify: event->type = ET_RawMotion; break;
|
||||
case ButtonPress: event->type = ET_RawButtonPress; break;
|
||||
case ButtonRelease: event->type = ET_RawButtonRelease; break;
|
||||
case KeyPress: event->type = ET_RawKeyPress; break;
|
||||
case KeyRelease: event->type = ET_RawKeyRelease; break;
|
||||
case XI_TouchBegin: event->type = ET_RawTouchBegin; break;
|
||||
case XI_TouchUpdate: event->type = ET_RawTouchUpdate; break;
|
||||
case XI_TouchEnd: event->type = ET_RawTouchEnd; break;
|
||||
}
|
||||
event->time = ms;
|
||||
event->deviceid = dev->id;
|
||||
event->sourceid = dev->id;
|
||||
|
|
|
@ -67,6 +67,9 @@ enum EventType {
|
|||
ET_RawButtonPress,
|
||||
ET_RawButtonRelease,
|
||||
ET_RawMotion,
|
||||
ET_RawTouchBegin,
|
||||
ET_RawTouchUpdate,
|
||||
ET_RawTouchEnd,
|
||||
ET_XQuartz,
|
||||
ET_Internal = 0xFF /* First byte */
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue
Block a user