diff options
Diffstat (limited to 'xkb/xkbPrKeyEv.c')
-rw-r--r-- | xkb/xkbPrKeyEv.c | 26 |
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 |