diff options
author | Deron Johnson <deron.johnson@sun.com> | 2005-01-20 23:47:26 +0000 |
---|---|---|
committer | Deron Johnson <deron.johnson@sun.com> | 2005-01-20 23:47:26 +0000 |
commit | 57c954d3aa00c4882c7fecfd53e772f9641c0b38 (patch) | |
tree | 0ddc1a6ca4f67efbd382f211fe71a2f77138b8e1 /xfixes | |
parent | cc390e4ed5e0d1bc8f7c3eaf9de67be4e9792b7c (diff) |
Integrate changes for release-0-6-1lg3d-rel-0-7-0lg3d
Diffstat (limited to 'xfixes')
-rwxr-xr-x | xfixes/cursor.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/xfixes/cursor.c b/xfixes/cursor.c index 2464f1abb..855334afb 100755 --- a/xfixes/cursor.c +++ b/xfixes/cursor.c @@ -32,6 +32,9 @@ #include "servermd.h" #include "inputstr.h" #include "windowstr.h" +#ifdef LG3D +#include "../Xext/lgeint.h" +#endif /* LG3D */ static RESTYPE CursorClientType; static RESTYPE CursorWindowType; @@ -87,7 +90,39 @@ CursorDisplayCursor (ScreenPtr pScreen, Bool ret; Unwrap (cs, pScreen, DisplayCursor); +#ifdef LG3D + if (lgeDisplayServerIsAlive) { + ret = (*pScreen->DisplayCursor) (pScreen, pInvisibleCursor); + } else +#endif ret = (*pScreen->DisplayCursor) (pScreen, pCursor); + +#ifdef LG3D + { + CursorEventPtr e; + + CursorCurrent = pCursor; + + /* Always send events, except when cursor is null */ + if (pCursor != NULL) { + for (e = cursorEvents; e; e = e->next) + { + if (e->eventMask & XFixesDisplayCursorNotifyMask) + { + xXFixesCursorNotifyEvent ev; + ev.type = XFixesEventBase + XFixesCursorNotify; + ev.subtype = XFixesDisplayCursorNotify; + ev.sequenceNumber = e->pClient->sequence; + ev.window = e->pWindow->drawable.id; + ev.cursorSerial = pCursor->serialNumber; + ev.timestamp = currentTime.milliseconds; + ev.name = pCursor->name; + WriteEventsToClient (e->pClient, 1, (xEvent *) &ev); + } + } + } + } +#else if (pCursor != CursorCurrent) { CursorEventPtr e; @@ -109,6 +144,8 @@ CursorDisplayCursor (ScreenPtr pScreen, } } } +#endif /* LG3D */ + Wrap (cs, pScreen, DisplayCursor, CursorDisplayCursor); return ret; } @@ -303,6 +340,7 @@ ProcXFixesGetCursorImage (ClientPtr client) int x, y; REQUEST_SIZE_MATCH(xXFixesGetCursorImageReq); + pCursor = CursorCurrent; if (!pCursor) return BadCursor; |