diff options
Diffstat (limited to 'dix/events.c')
-rw-r--r-- | dix/events.c | 39 |
1 files changed, 27 insertions, 12 deletions
diff --git a/dix/events.c b/dix/events.c index 33392af8a..5b5ea3b72 100644 --- a/dix/events.c +++ b/dix/events.c @@ -1,4 +1,4 @@ -/* $XdotOrg: xc/programs/Xserver/dix/events.c,v 1.6.4.1.10.2 2005/01/12 00:37:52 deronj Exp $ */ +/* $XdotOrg: xc/programs/Xserver/dix/events.c,v 1.6.4.2 2005/01/20 23:47:25 deronj Exp $ */ /* $XFree86: xc/programs/Xserver/dix/events.c,v 3.51 2004/01/12 17:04:52 tsi Exp $ */ /************************************************************ @@ -3158,16 +3158,7 @@ ProcessKeyboardEvent (xE, keybd, count) { xeviekb = keybd; if(!rootWin) { -#ifdef LG3D - /* TEMP Workaround */ - WindowPtr pWin; - if (lgeDisplayServerIsAlive) { - xeviewin = pLgeDisplayServerPRWWin; - } - pWin = xeviewin->parent; -#else WindowPtr pWin = xeviewin->parent; -#endif /* LG3D */ while(pWin) { if(!pWin->parent) { rootWin = pWin->drawable.id; @@ -3466,6 +3457,29 @@ ProcessPointerEvent (xE, mouse, count) } #endif /* LG3D_EVENT_TEST_THROUGHPUT */ +#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 */ + if (!syncEvents.playingEvents) NoticeTime(xE) XE_KBPTR.state = (butc->state | ( @@ -5236,10 +5250,11 @@ WriteEventsToClient(pClient, count, events) damev->area.x, damev->area.y, damev->area.width, damev->area.height); } else if (!damageEventsOnly) { - ErrorF("Send event %d to client %d, xy = %d, %d, event win = %d\n", + ErrorF("Send event %d to client %d, xy = %d, %d, event win = %d, state = 0x%x\n", ev->u.u.type, pClient->index, ev->u.keyButtonPointer.eventX, ev->u.keyButtonPointer.eventY, - ev->u.keyButtonPointer.event); + ev->u.keyButtonPointer.event, + ev->u.keyButtonPointer.state); if (ev->u.u.type == 4 || ev->u.u.type == 5) { ErrorF("Button detail = %d\n", ev->u.u.detail); } |