summaryrefslogtreecommitdiff
path: root/include/dix.h
diff options
context:
space:
mode:
authorPeter Hutterer <peter@cs.unisa.edu.au>2007-09-28 18:46:41 +0930
committerPeter Hutterer <peter@cs.unisa.edu.au>2007-09-28 18:46:41 +0930
commita511c445debbd13e8c48146ecd2d7c97e793f788 (patch)
treec36c86953b242d3b6a4f666a0c6f3d632be2cb06 /include/dix.h
parentbe466d8df808c4e4067a7963617bc3f506768f2d (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.h1
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);