summaryrefslogtreecommitdiff
path: root/dix
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2009-07-13 15:09:38 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2009-07-15 10:36:30 +1000
commitd040af7fa3c7314917414a28d723bdda3c4289c3 (patch)
tree8dd6d00a1c3e97477d3d87083193feb8948f0898 /dix
parent81b64f668541217c1c9518ac4a7e3fdf0a6e4002 (diff)
Update to type-specific raw events - require inputproto 1.9.99.14.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Diffstat (limited to 'dix')
-rw-r--r--dix/eventconvert.c25
-rw-r--r--dix/events.c6
-rw-r--r--dix/getevents.c6
3 files changed, 27 insertions, 10 deletions
diff --git a/dix/eventconvert.c b/dix/eventconvert.c
index 8d9a329c1..765c84b66 100644
--- a/dix/eventconvert.c
+++ b/dix/eventconvert.c
@@ -94,7 +94,11 @@ EventToCore(InternalEvent *event, xEvent *core)
break;
case ET_ProximityIn:
case ET_ProximityOut:
- case ET_Raw:
+ case ET_RawKeyPress:
+ case ET_RawKeyRelease:
+ case ET_RawButtonPress:
+ case ET_RawButtonRelease:
+ case ET_RawMotion:
return BadMatch;
default:
/* XXX: */
@@ -135,7 +139,11 @@ EventToXI(InternalEvent *ev, xEvent **xi, int *count)
case ET_ProximityOut:
return eventToKeyButtonPointer((DeviceEvent*)ev, xi, count);
case ET_DeviceChanged:
- case ET_Raw:
+ case ET_RawKeyPress:
+ case ET_RawKeyRelease:
+ case ET_RawButtonPress:
+ case ET_RawButtonRelease:
+ case ET_RawMotion:
*count = 0;
*xi = NULL;
return BadMatch;
@@ -182,7 +190,11 @@ EventToXI2(InternalEvent *ev, xEvent **xi)
return BadMatch;
case ET_DeviceChanged:
return eventToClassesChanged((DeviceChangedEvent*)ev, xi);
- case ET_Raw:
+ case ET_RawKeyPress:
+ case ET_RawKeyRelease:
+ case ET_RawButtonPress:
+ case ET_RawButtonRelease:
+ case ET_RawMotion:
return eventToRawEvent((RawDeviceEvent*)ev, xi);
}
@@ -469,7 +481,6 @@ eventToRawEvent(RawDeviceEvent *ev, xEvent **xi)
raw->evtype = GetXI2Type((InternalEvent*)ev);
raw->time = ev->time;
raw->length = bytes_to_int32(len - sizeof(xEvent));
- raw->eventtype = ev->subtype;
raw->detail = ev->detail.button;
raw->deviceid = ev->deviceid;
raw->valuators_len = vallen;
@@ -552,7 +563,11 @@ GetXI2Type(InternalEvent *event)
case ET_Leave: xi2type = XI_Leave; break;
case ET_Hierarchy: xi2type = XI_HierarchyChanged; break;
case ET_DeviceChanged: xi2type = XI_DeviceChanged; break;
- case ET_Raw: xi2type = XI_RawEvent; break;
+ case ET_RawKeyPress: xi2type = XI_RawKeyPress; break;
+ case ET_RawKeyRelease: xi2type = XI_RawKeyRelease; break;
+ case ET_RawButtonPress: xi2type = XI_RawButtonPress; break;
+ case ET_RawButtonRelease: xi2type = XI_RawButtonRelease; break;
+ case ET_RawMotion: xi2type = XI_RawMotion; break;
case ET_FocusIn: xi2type = XI_FocusIn; break;
case ET_FocusOut: xi2type = XI_FocusOut; break;
default:
diff --git a/dix/events.c b/dix/events.c
index 91a083364..f6369f6c6 100644
--- a/dix/events.c
+++ b/dix/events.c
@@ -2188,7 +2188,11 @@ FixUpEventFromWindow(
{
xXIDeviceEvent* event = (xXIDeviceEvent*)xE;
- if (event->evtype == XI_RawEvent)
+ if (event->evtype == XI_RawKeyPress ||
+ event->evtype == XI_RawKeyRelease ||
+ event->evtype == XI_RawButtonPress ||
+ event->evtype == XI_RawButtonRelease ||
+ event->evtype == XI_RawMotion)
return;
event->root = RootWindow(pDev)->drawable.id;
diff --git a/dix/getevents.c b/dix/getevents.c
index fcac056aa..13e7576a8 100644
--- a/dix/getevents.c
+++ b/dix/getevents.c
@@ -138,14 +138,12 @@ init_event(DeviceIntPtr dev, DeviceEvent* event, Time ms)
}
static void
-init_raw(DeviceIntPtr dev, RawDeviceEvent *event, Time ms, int subtype,
- int detail)
+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_Raw;
- event->subtype = subtype;
+ event->type = ET_RawKeyPress - ET_KeyPress + type;
event->time = ms;
event->deviceid = dev->id;
event->sourceid = dev->id;