cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync/***********************************************************
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncCopyright 1987, 1998 The Open Group
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncPermission to use, copy, modify, distribute, and sell this software and its
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncdocumentation for any purpose is hereby granted without fee, provided that
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncthe above copyright notice appear in all copies and that both that
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynccopyright notice and this permission notice appear in supporting
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncdocumentation.
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncThe above copyright notice and this permission notice shall be included in
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncall copies or substantial portions of the Software.
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncOPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncAN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncExcept as contained in this notice, the name of The Open Group shall not be
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncused in advertising or otherwise to promote the sale, use or other dealings
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncin this Software without prior written authorization from The Open Group.
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncCopyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync All Rights Reserved
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncPermission to use, copy, modify, and distribute this software and its
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncdocumentation for any purpose and without fee is hereby granted,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncprovided that the above copyright notice appear in all copies and that
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncboth that copyright notice and this permission notice appear in
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncsupporting documentation, and that the name of Digital not be
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncused in advertising or publicity pertaining to distribution of the
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncsoftware without specific, written prior permission.
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncDIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncDIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncWHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncSOFTWARE.
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync******************************************************************/
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#ifndef DIX_H
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define DIX_H
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#include "callback.h"
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#include "gc.h"
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#include "window.h"
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#include "input.h"
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#include "cursor.h"
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#include "geext.h"
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#include "events.h"
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#include <X11/extensions/XI.h>
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define EARLIER -1
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define SAMETIME 0
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define LATER 1
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define NullClient ((ClientPtr) 0)
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define REQUEST(type) \
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync type *stuff = (type *)client->requestBuffer
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define REQUEST_SIZE_MATCH(req)\
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync if ((sizeof(req) >> 2) != client->req_len)\
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync return(BadLength)
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define REQUEST_AT_LEAST_SIZE(req) \
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync if ((sizeof(req) >> 2) > client->req_len )\
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync return(BadLength)
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define REQUEST_FIXED_SIZE(req, n)\
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync if (((sizeof(req) >> 2) > client->req_len) || \
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync (((sizeof(req) + (n) + 3) >> 2) != client->req_len)) \
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync return(BadLength)
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define LEGAL_NEW_RESOURCE(id,client)\
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync if (!LegalNewID(id,client)) \
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync {\
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync client->errorValue = id;\
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync return BadIDChoice;\
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync }
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define VALIDATE_DRAWABLE_AND_GC(drawID, pDraw, mode)\
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync {\
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync int rc = dixLookupDrawable(&(pDraw), drawID, client, M_ANY, mode);\
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync if (rc != Success)\
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync return rc;\
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync rc = dixLookupGC(&(pGC), stuff->gc, client, DixUseAccess);\
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync if (rc != Success)\
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync return rc;\
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync if ((pGC->depth != pDraw->depth) || (pGC->pScreen != pDraw->pScreen))\
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync return BadMatch;\
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync }\
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync if (pGC->serialNumber != pDraw->serialNumber)\
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ValidateGC(pDraw, pGC);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define WriteReplyToClient(pClient, size, pReply) { \
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync if ((pClient)->swapped) \
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync (*ReplySwapVector[((xReq *)(pClient)->requestBuffer)->reqType]) \
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync (pClient, (int)(size), pReply); \
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync else (void) WriteToClient(pClient, (int)(size), (char *)(pReply)); }
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define WriteSwappedDataToClient(pClient, size, pbuf) \
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync if ((pClient)->swapped) \
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync (*(pClient)->pSwapReplyFunc)(pClient, (int)(size), pbuf); \
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync else (void) WriteToClient (pClient, (int)(size), (char *)(pbuf));
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynctypedef struct _TimeStamp *TimeStampPtr;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#ifndef _XTYPEDEF_CLIENTPTR
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynctypedef struct _Client *ClientPtr; /* also in misc.h */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define _XTYPEDEF_CLIENTPTR
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#endif
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynctypedef struct _WorkQueue *WorkQueuePtr;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT ClientPtr clients[MAXCLIENTS];
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT ClientPtr serverClient;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT int currentMaxClients;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT char dispatchExceptionAtReset;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynctypedef int HWEventQueueType;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynctypedef HWEventQueueType* HWEventQueuePtr;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT HWEventQueuePtr checkForInput[2];
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynctypedef struct _TimeStamp {
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync CARD32 months; /* really ~49.7 days */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync CARD32 milliseconds;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync} TimeStamp;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync/* dispatch.c */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void SetInputCheck(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync HWEventQueuePtr /*c0*/,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync HWEventQueuePtr /*c1*/);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void CloseDownClient(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ClientPtr /*client*/);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void UpdateCurrentTime(void);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void UpdateCurrentTimeIf(void);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT int dixDestroyPixmap(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync pointer /*value*/,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync XID /*pid*/);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void InitClient(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ClientPtr /*client*/,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync int /*i*/,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync pointer /*ospriv*/);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT ClientPtr NextAvailableClient(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync pointer /*ospriv*/);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void SendErrorToClient(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ClientPtr /*client*/,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync unsigned int /*majorCode*/,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync unsigned int /*minorCode*/,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync XID /*resId*/,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync int /*errorCode*/);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void MarkClientException(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ClientPtr /*client*/);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_HIDDEN Bool CreateConnectionBlock(void);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync/* dixutils.c */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT int CompareISOLatin1Lowered(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync unsigned char * /*a*/,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync int alen,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync unsigned char * /*b*/,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync int blen);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT int dixLookupWindow(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync WindowPtr *result,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync XID id,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ClientPtr client,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync Mask access_mode);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT int dixLookupDrawable(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync DrawablePtr *result,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync XID id,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ClientPtr client,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync Mask type_mask,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync Mask access_mode);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT int dixLookupGC(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync GCPtr *result,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync XID id,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ClientPtr client,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync Mask access_mode);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT int dixLookupFontable(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync FontPtr *result,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync XID id,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ClientPtr client,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync Mask access_mode);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT int dixLookupClient(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ClientPtr *result,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync XID id,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ClientPtr client,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync Mask access_mode);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void NoopDDA(void);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT int AlterSaveSetForClient(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ClientPtr /*client*/,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync WindowPtr /*pWin*/,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync unsigned /*mode*/,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync Bool /*toRoot*/,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync Bool /*map*/);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void DeleteWindowFromAnySaveSet(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync WindowPtr /*pWin*/);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void BlockHandler(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync pointer /*pTimeout*/,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync pointer /*pReadmask*/);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void WakeupHandler(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync int /*result*/,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync pointer /*pReadmask*/);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncvoid
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncEnableLimitedSchedulingLatency(void);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncvoid
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncDisableLimitedSchedulingLatency(void);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynctypedef void (* WakeupHandlerProcPtr)(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync pointer /* blockData */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync int /* result */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync pointer /* pReadmask */);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT Bool RegisterBlockAndWakeupHandlers(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync BlockHandlerProcPtr /*blockHandler*/,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync WakeupHandlerProcPtr /*wakeupHandler*/,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync pointer /*blockData*/);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void RemoveBlockAndWakeupHandlers(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync BlockHandlerProcPtr /*blockHandler*/,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync WakeupHandlerProcPtr /*wakeupHandler*/,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync pointer /*blockData*/);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void InitBlockAndWakeupHandlers(void);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void ProcessWorkQueue(void);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void ProcessWorkQueueZombies(void);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT Bool QueueWorkProc(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync Bool (* /*function*/)(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ClientPtr /*clientUnused*/,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync pointer /*closure*/),
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ClientPtr /*client*/,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync pointer /*closure*/
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynctypedef Bool (* ClientSleepProcPtr)(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ClientPtr /*client*/,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync pointer /*closure*/);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT Bool ClientSleep(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ClientPtr /*client*/,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ClientSleepProcPtr /* function */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync pointer /*closure*/);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#ifndef ___CLIENTSIGNAL_DEFINED___
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define ___CLIENTSIGNAL_DEFINED___
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT Bool ClientSignal(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ClientPtr /*client*/);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#endif /* ___CLIENTSIGNAL_DEFINED___ */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void ClientWakeup(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ClientPtr /*client*/);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT Bool ClientIsAsleep(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ClientPtr /*client*/);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync/* atom.c */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT Atom MakeAtom(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync const char * /*string*/,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync unsigned /*len*/,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync Bool /*makeit*/);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT Bool ValidAtom(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync Atom /*atom*/);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT const char *NameForAtom(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync Atom /*atom*/);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void AtomError(void) _X_NORETURN;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void FreeAllAtoms(void);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void InitAtoms(void);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync/* main.c */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void SetVendorRelease(int release);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void SetVendorString(char *string);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync/* events.c */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern void SetMaskForEvent(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync int /* deviceid */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync Mask /* mask */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync int /* event */);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void ConfineToShape(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync DeviceIntPtr /* pDev */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync RegionPtr /* shape */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync int* /* px */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync int* /* py */);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT Bool IsParent(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync WindowPtr /* maybeparent */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync WindowPtr /* child */);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT WindowPtr GetCurrentRootWindow(DeviceIntPtr pDev);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT WindowPtr GetSpriteWindow(DeviceIntPtr pDev);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void NoticeEventTime(InternalEvent *ev);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern void EnqueueEvent(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync InternalEvent * /* ev */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync DeviceIntPtr /* device */);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern void ActivatePointerGrab(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync DeviceIntPtr /* mouse */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync GrabPtr /* grab */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync TimeStamp /* time */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync Bool /* autoGrab */);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern void DeactivatePointerGrab(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync DeviceIntPtr /* mouse */);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern void ActivateKeyboardGrab(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync DeviceIntPtr /* keybd */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync GrabPtr /* grab */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync TimeStamp /* time */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync Bool /* passive */);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern void DeactivateKeyboardGrab(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync DeviceIntPtr /* keybd */);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern BOOL ActivateFocusInGrab(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync DeviceIntPtr /* dev */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync WindowPtr /* old */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync WindowPtr /* win */);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern void AllowSome(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ClientPtr /* client */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync TimeStamp /* time */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync DeviceIntPtr /* thisDev */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync int /* newState */);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern void ReleaseActiveGrabs(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ClientPtr client);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT int DeliverEventsToWindow(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync DeviceIntPtr /* pWin */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync WindowPtr /* pWin */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync xEventPtr /* pEvents */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync int /* count */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync Mask /* filter */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync GrabPtr /* grab */);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern int DeliverDeviceEvents(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync WindowPtr /* pWin */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync InternalEvent* /* event */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync GrabPtr /* grab */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync WindowPtr /* stopAt */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync DeviceIntPtr /* dev */);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern void InitializeSprite(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync DeviceIntPtr /* pDev */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync WindowPtr /* pWin */);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern void UpdateSpriteForScreen(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync DeviceIntPtr /* pDev */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ScreenPtr /* pScreen */);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void WindowHasNewCursor(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync WindowPtr /* pWin */);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern Bool CheckDeviceGrabs(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync DeviceIntPtr /* device */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync DeviceEvent* /* event */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync int /* checkFirst */);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern void DeliverFocusedEvent(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync DeviceIntPtr /* keybd */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync InternalEvent* /* event */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync WindowPtr /* window */);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern void DeliverGrabbedEvent(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync InternalEvent* /* event */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync DeviceIntPtr /* thisDev */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync Bool /* deactivateGrab */);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern void FixKeyState(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync DeviceEvent* /* event */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync DeviceIntPtr /* keybd */);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern void RecalculateDeliverableEvents(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync WindowPtr /* pWin */);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT int OtherClientGone(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync pointer /* value */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync XID /* id */);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern void DoFocusEvents(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync DeviceIntPtr /* dev */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync WindowPtr /* fromWin */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync WindowPtr /* toWin */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync int /* mode */);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern int SetInputFocus(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ClientPtr /* client */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync DeviceIntPtr /* dev */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync Window /* focusID */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync CARD8 /* revertTo */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync Time /* ctime */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync Bool /* followOK */);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern int GrabDevice(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ClientPtr /* client */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync DeviceIntPtr /* dev */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync unsigned /* this_mode */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync unsigned /* other_mode */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync Window /* grabWindow */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync unsigned /* ownerEvents */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync Time /* ctime */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync GrabMask* /* mask */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync int /* grabtype */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync Cursor /* curs */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync Window /* confineToWin */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync CARD8 * /* status */);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern void InitEvents(void);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern void CloseDownEvents(void);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern void DeleteWindowFromAnyEvents(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync WindowPtr /* pWin */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync Bool /* freeResources */);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern Mask EventMaskForClient(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync WindowPtr /* pWin */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ClientPtr /* client */);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT int DeliverEvents(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync WindowPtr /*pWin*/,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync xEventPtr /*xE*/,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync int /*count*/,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync WindowPtr /*otherParent*/);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern Bool CheckMotion(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync DeviceEvent* /* ev */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync DeviceIntPtr /* pDev */);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void WriteEventsToClient(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ClientPtr /*pClient*/,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync int /*count*/,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync xEventPtr /*events*/);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT int TryClientEvents(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ClientPtr /*client*/,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync DeviceIntPtr /* device */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync xEventPtr /*pEvents*/,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync int /*count*/,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync Mask /*mask*/,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync Mask /*filter*/,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync GrabPtr /*grab*/);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void WindowsRestructured(void);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern int SetClientPointer(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ClientPtr /* client */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync DeviceIntPtr /* device */);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT DeviceIntPtr PickPointer(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ClientPtr /* client */);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT DeviceIntPtr PickKeyboard(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ClientPtr /* client */);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern Bool IsInterferingGrab(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ClientPtr /* client */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync DeviceIntPtr /* dev */,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync xEvent* /* events */);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#ifdef PANORAMIX
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void ReinitializeRootWindow(WindowPtr win, int xoff, int yoff);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#endif
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#ifdef RANDR
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncScreenRestructured (ScreenPtr pScreen);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#endif
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT int ffs(int i);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync/*
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * ServerGrabCallback stuff
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT CallbackListPtr ServerGrabCallback;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynctypedef enum {SERVER_GRABBED, SERVER_UNGRABBED,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync CLIENT_PERVIOUS, CLIENT_IMPERVIOUS } ServerGrabState;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynctypedef struct {
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ClientPtr client;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ServerGrabState grabstate;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync} ServerGrabInfoRec;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync/*
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * EventCallback stuff
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT CallbackListPtr EventCallback;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynctypedef struct {
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ClientPtr client;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync xEventPtr events;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync int count;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync} EventInfoRec;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync/*
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * DeviceEventCallback stuff
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT CallbackListPtr DeviceEventCallback;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynctypedef struct {
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync InternalEvent *event;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync DeviceIntPtr device;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync} DeviceEventInfoRec;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern int XItoCoreType(int xi_type);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern Bool DevHasCursor(DeviceIntPtr pDev);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern Bool _X_EXPORT IsPointerDevice( DeviceIntPtr dev);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern Bool _X_EXPORT IsKeyboardDevice(DeviceIntPtr dev);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern Bool IsPointerEvent(InternalEvent *event);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT Bool IsMaster(DeviceIntPtr dev);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_HIDDEN void CopyKeyClass(DeviceIntPtr device, DeviceIntPtr master);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_HIDDEN int CorePointerProc(DeviceIntPtr dev, int what);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_HIDDEN int CoreKeyboardProc(DeviceIntPtr dev, int what);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync/*
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * These are deprecated compatibility functions and will be removed soon!
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * Please use the noted replacements instead.
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync/* replaced by dixLookupWindow */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT WindowPtr SecurityLookupWindow(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync XID id,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ClientPtr client,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync Mask access_mode);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync/* replaced by dixLookupWindow */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT WindowPtr LookupWindow(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync XID id,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ClientPtr client);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync/* replaced by dixLookupDrawable */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT pointer SecurityLookupDrawable(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync XID id,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ClientPtr client,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync Mask access_mode);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync/* replaced by dixLookupDrawable */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT pointer LookupDrawable(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync XID id,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ClientPtr client);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync/* replaced by dixLookupClient */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT ClientPtr LookupClient(
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync XID id,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ClientPtr client);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#endif /* DIX_H */