summaryrefslogtreecommitdiff
path: root/hw
diff options
context:
space:
mode:
Diffstat (limited to 'hw')
-rw-r--r--hw/xfree86/common/xf86Xinput.c20
1 files changed, 15 insertions, 5 deletions
diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c
index 25b61d08b..ddf7e1ea6 100644
--- a/hw/xfree86/common/xf86Xinput.c
+++ b/hw/xfree86/common/xf86Xinput.c
@@ -112,8 +112,7 @@
#include "xf86_OSproc.h" /* sigio stuff */
#ifdef LG3D
-# include "../../../dix/ds.h"
-# include "../../../Xext/lgeint.h"
+#include "../../../Xext/lgeint.h"
#endif /* LG3D */
/******************************************************************************
@@ -699,7 +698,9 @@ xf86eqEnqueue (xEvent *e)
#ifdef XINPUT
int count;
+#ifndef LG3D
xf86AssertBlockedSIGIO ("xf86eqEnqueue");
+#endif /* !LG3D */
switch (e->u.u.type) {
case KeyPress:
case KeyRelease:
@@ -735,9 +736,18 @@ xf86eqEnqueue (xEvent *e)
#endif
#ifdef LG3D
- /* If Display Server is not yet alive, do nothing to the event */
- if (lgeDisplayServerIsAlive) {
- dsProcessEvent(e);
+ if (lgeDisplayServerIsAlive &&
+ !lgeDisplayServerClient->clientGone &&
+ !lgeEventComesFromDS) {
+
+ /*
+ ErrorF("Send event XS->DS, type = %d xy = %d, %d\n",
+ e->u.u.type, e->u.keyButtonPointer.rootX,
+ e->u.keyButtonPointer.rootY);
+ */
+
+ WriteToClient(lgeDisplayServerClient, sizeof(xEvent), (char *)e);
+ return;
}
#endif /* LG3D */