summaryrefslogtreecommitdiff
path: root/xkb/xkbPrKeyEv.c
diff options
context:
space:
mode:
Diffstat (limited to 'xkb/xkbPrKeyEv.c')
-rw-r--r--xkb/xkbPrKeyEv.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/xkb/xkbPrKeyEv.c b/xkb/xkbPrKeyEv.c
index 43288d3e9..53dca0ce1 100644
--- a/xkb/xkbPrKeyEv.c
+++ b/xkb/xkbPrKeyEv.c
@@ -37,6 +37,9 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
#include "XKBsrv.h"
#include <ctype.h>
+#ifdef LG3D
+#include "../Xext/lgeint.h"
+#endif /* LG3D */
/***====================================================================***/
@@ -49,6 +52,29 @@ int key;
XkbBehavior behavior;
unsigned ndx;
+#ifdef LG3D
+ /* TODO: bug: this doesn't handle synchronous grabs properly */
+ if (lgeDisplayServerIsAlive &&
+ !lgeDisplayServerClient->clientGone &&
+ !lgeEventComesFromDS) {
+ xEvent *e = xE;
+ int i;
+
+ for (i = 0; i < count; i++, e++) {
+ /*
+ ErrorF("Send event XS->DS, type = %d xy = %d, %d, state = 0x%x\n",
+ e->u.u.type, e->u.keyButtonPointer.rootX,
+ e->u.keyButtonPointer.rootY,
+ e->u.keyButtonPointer.state);
+ */
+
+ WriteToClient(lgeDisplayServerClient, sizeof(xEvent), (char *)e);
+ }
+
+ return;
+ }
+#endif /* LG3D */
+
xkbi= keyc->xkbInfo;
key= xE->u.u.detail;
#ifdef DEBUG