diff options
author | Peter Hutterer <peter@cs.unisa.edu.au> | 2007-09-28 18:46:41 +0930 |
---|---|---|
committer | Peter Hutterer <peter@cs.unisa.edu.au> | 2007-09-28 18:46:41 +0930 |
commit | a511c445debbd13e8c48146ecd2d7c97e793f788 (patch) | |
tree | c36c86953b242d3b6a4f666a0c6f3d632be2cb06 /include/dix.h | |
parent | be466d8df808c4e4067a7963617bc3f506768f2d (diff) |
Remove generation of core events, long live XI!
Let the drivers only generate XI events and put those into the event queue.
When processing events, generate core events as needed. This fixes a number of
problems with XKB and the DIX in general.
The previous approach was to put core events and XI events as separate events
into the event queue. When being processed, the server had no knowledge of
them coming from the same device state change. Anything that would then change
the state of the device accordingly was in danger of changing it twice,
leading to some funny (i.e. not funny at all) results.
Emulating core events while processing XI events fixes this, there is only one
path that actually changes the device state now. Although we have to be
careful when replaying events from synced devices, otherwise we may lose
events.
Note: XI has precedence over core for passive grabs, but core events are
delivered to the client first.
This removes the wrapping added in 340911d7243a7f1095d79b5b2dcfa81b145c2474
Diffstat (limited to 'include/dix.h')
-rw-r--r-- | include/dix.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/dix.h b/include/dix.h index bec19dd4c..34abb2d87 100644 --- a/include/dix.h +++ b/include/dix.h @@ -689,6 +689,7 @@ typedef struct { extern int xstrcasecmp(char *s1, char *s2); #endif +extern int XItoCoreType(int xi_type); extern Bool DevHasCursor(DeviceIntPtr pDev); extern Bool IsPointerDevice( DeviceIntPtr dev); |