From cfe7301bcf134ade26a81764be2ca5890eb29d5d Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Wed, 26 Nov 2008 21:40:05 +1000 Subject: [PATCH] Xi: remove all new XI2 protocol requests and their handling. This commit reverts to XI 1.4 requests, plus the input device property requests. Signed-off-by: Peter Hutterer --- Xi/Makefile.am | 18 +-- Xi/chdevcur.c | 111 ------------------ Xi/chdevcur.h | 39 ------- Xi/chdevhier.c | 305 ------------------------------------------------- Xi/chdevhier.h | 42 ------- Xi/extgrbdev.c | 216 ---------------------------------- Xi/extgrbdev.h | 43 ------- Xi/extinit.c | 39 +------ Xi/getcptr.c | 108 ----------------- Xi/getcptr.h | 43 ------- Xi/querydp.c | 168 --------------------------- Xi/querydp.h | 44 ------- Xi/setcptr.c | 103 ----------------- Xi/setcptr.h | 36 ------ Xi/warpdevp.c | 175 ---------------------------- Xi/warpdevp.h | 39 ------- Xi/xiselev.c | 81 ------------- Xi/xiselev.h | 40 ------- 18 files changed, 4 insertions(+), 1646 deletions(-) delete mode 100644 Xi/chdevcur.c delete mode 100644 Xi/chdevcur.h delete mode 100644 Xi/chdevhier.c delete mode 100644 Xi/chdevhier.h delete mode 100644 Xi/extgrbdev.c delete mode 100644 Xi/extgrbdev.h delete mode 100644 Xi/getcptr.c delete mode 100644 Xi/getcptr.h delete mode 100644 Xi/querydp.c delete mode 100644 Xi/querydp.h delete mode 100644 Xi/setcptr.c delete mode 100644 Xi/setcptr.h delete mode 100644 Xi/warpdevp.c delete mode 100644 Xi/warpdevp.h delete mode 100644 Xi/xiselev.c delete mode 100644 Xi/xiselev.h diff --git a/Xi/Makefile.am b/Xi/Makefile.am index 09dd41d0e..557e20728 100644 --- a/Xi/Makefile.am +++ b/Xi/Makefile.am @@ -5,12 +5,8 @@ AM_CFLAGS = $(DIX_CFLAGS) libXi_la_SOURCES = \ allowev.c \ allowev.h \ - chdevcur.c \ - chdevcur.h \ chgdctl.c \ chgdctl.h \ - chdevhier.c \ - chdevhier.h \ chgfctl.c \ chgfctl.h \ chgkbd.c \ @@ -27,13 +23,9 @@ libXi_la_SOURCES = \ devbell.h \ exevents.c \ exglobals.h \ - extgrbdev.c \ - extgrbdev.h \ extinit.c \ getbmap.c \ getbmap.h \ - getcptr.c \ - getcptr.h \ getdctl.c \ getdctl.h \ getfctl.c \ @@ -62,8 +54,6 @@ libXi_la_SOURCES = \ listdev.h \ opendev.c \ opendev.h \ - querydp.c \ - querydp.h \ queryst.c \ queryst.h \ selectev.c \ @@ -72,8 +62,6 @@ libXi_la_SOURCES = \ sendexev.h \ setbmap.c \ setbmap.h \ - setcptr.c \ - setcptr.h \ setdval.c \ setdval.h \ setfocus.c \ @@ -88,11 +76,7 @@ libXi_la_SOURCES = \ ungrdevb.h \ ungrdevk.c \ ungrdevk.h \ - warpdevp.c \ - warpdevp.h \ xiproperty.c \ - xiproperty.h \ - xiselev.c \ - xiselev.h + xiproperty.h EXTRA_DIST = stubs.c diff --git a/Xi/chdevcur.c b/Xi/chdevcur.c deleted file mode 100644 index 121f7921d..000000000 --- a/Xi/chdevcur.c +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Copyright 2007-2008 Peter Hutterer - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - * Author: Peter Hutterer, University of South Australia, NICTA - */ - -/*********************************************************************** - * - * Request to change a given device pointer's cursor. - * - */ - -#define NEED_EVENTS -#define NEED_REPLIES -#ifdef HAVE_DIX_CONFIG_H -#include -#endif - -#include /* for inputstr.h */ -#include /* Request macro */ -#include "inputstr.h" /* DeviceIntPtr */ -#include "windowstr.h" /* window structure */ -#include "scrnintstr.h" /* screen structure */ -#include -#include -#include "extnsionst.h" -#include "exevents.h" -#include "exglobals.h" -#include "input.h" - -#include "chdevcur.h" - -/*********************************************************************** - * - * This procedure allows a client to set one pointer's cursor. - * - */ - -int -SProcXChangeDeviceCursor(ClientPtr client) -{ - char n; - - REQUEST(xChangeDeviceCursorReq); - swaps(&stuff->length, n); - REQUEST_SIZE_MATCH(xChangeDeviceCursorReq); - return (ProcXChangeDeviceCursor(client)); -} - -int ProcXChangeDeviceCursor(ClientPtr client) -{ - int rc; - WindowPtr pWin = NULL; - DeviceIntPtr pDev = NULL; - CursorPtr pCursor = NULL; - - REQUEST(xChangeDeviceCursorReq); - REQUEST_SIZE_MATCH(xChangeDeviceCursorReq); - - rc = dixLookupDevice(&pDev, stuff->deviceid, client, DixSetAttrAccess); - if (rc != Success) - return rc; - - if (stuff->win != None) - { - rc = dixLookupWindow(&pWin, stuff->win, client, DixSetAttrAccess); - if (rc != Success) - return rc; - } - - if (stuff->cursor == None) - { - if (pWin == WindowTable[pWin->drawable.pScreen->myNum]) - pCursor = rootCursor; - else - pCursor = (CursorPtr)None; - } - else - { - pCursor = (CursorPtr)SecurityLookupIDByType(client, stuff->cursor, - RT_CURSOR, DixReadAccess); - if (!pCursor) - { - return BadCursor; - } - } - - ChangeWindowDeviceCursor(pWin, pDev, pCursor); - - return Success; -} - diff --git a/Xi/chdevcur.h b/Xi/chdevcur.h deleted file mode 100644 index e6df9eb89..000000000 --- a/Xi/chdevcur.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright 2007-2008 Peter Hutterer - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - * Author: Peter Hutterer, University of South Australia, NICTA - */ - -#ifdef HAVE_DIX_CONFIG_H -#include -#endif - -#ifndef CHDEVCUR_H -#define CHDEVCUR_H 1 - -int SProcXChangeDeviceCursor(ClientPtr /* client */ - ); - -int ProcXChangeDeviceCursor(ClientPtr /* client */ - ); - -#endif /* CHDEVCUR_H */ diff --git a/Xi/chdevhier.c b/Xi/chdevhier.c deleted file mode 100644 index db16349af..000000000 --- a/Xi/chdevhier.c +++ /dev/null @@ -1,305 +0,0 @@ -/* - * Copyright 2007-2008 Peter Hutterer - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - * Author: Peter Hutterer, University of South Australia, NICTA - */ - -/*********************************************************************** - * - * Request change in the device hierarchy. - * - */ - - -#define NEED_EVENTS -#define NEED_REPLIES -#ifdef HAVE_DIX_CONFIG_H -#include -#endif - -#include /* for inputstr.h */ -#include /* Request macro */ -#include "inputstr.h" /* DeviceIntPtr */ -#include "windowstr.h" /* window structure */ -#include "scrnintstr.h" /* screen structure */ -#include -#include -#include -#include "extnsionst.h" -#include "exevents.h" -#include "exglobals.h" -#include "geext.h" -#include "xace.h" - -#include "chdevhier.h" - - -/*********************************************************************** - * - * This procedure allows a client to change the device hierarchy through - * adding new master devices, removing them, etc. - * - */ - -int SProcXChangeDeviceHierarchy(ClientPtr client) -{ - char n; - - REQUEST(xChangeDeviceHierarchyReq); - swaps(&stuff->length, n); - return (ProcXChangeDeviceHierarchy(client)); -} - -#define SWAPIF(cmd) if (client->swapped) { cmd; } - -int -ProcXChangeDeviceHierarchy(ClientPtr client) -{ - DeviceIntPtr ptr, keybd; - DeviceIntRec dummyDev; - xAnyHierarchyChangeInfo *any; - int required_len = sizeof(xChangeDeviceHierarchyReq); - char n; - int rc = Success; - int nchanges = 0; - deviceHierarchyChangedEvent ev; - - REQUEST(xChangeDeviceHierarchyReq); - REQUEST_AT_LEAST_SIZE(xChangeDeviceHierarchyReq); - - any = (xAnyHierarchyChangeInfo*)&stuff[1]; - while(stuff->num_changes--) - { - SWAPIF(swapl(&any->type, n)); - SWAPIF(swaps(&any->length, n)); - - required_len += any->length; - if ((stuff->length * 4) < required_len) - return BadLength; - - switch(any->type) - { - case CH_CreateMasterDevice: - { - xCreateMasterInfo* c = (xCreateMasterInfo*)any; - char* name; - - SWAPIF(swaps(&c->namelen, n)); - name = xcalloc(c->namelen + 1, sizeof(char)); - strncpy(name, (char*)&c[1], c->namelen); - - - rc = AllocMasterDevice(client, name, &ptr, &keybd); - if (rc != Success) - { - xfree(name); - goto unwind; - } - - if (!c->sendCore) - ptr->coreEvents = keybd->coreEvents = FALSE; - - ActivateDevice(ptr); - ActivateDevice(keybd); - - if (c->enable) - { - EnableDevice(ptr); - EnableDevice(keybd); - } - xfree(name); - nchanges++; - } - break; - case CH_RemoveMasterDevice: - { - xRemoveMasterInfo* r = (xRemoveMasterInfo*)any; - - if (r->returnMode != AttachToMaster && - r->returnMode != Floating) - return BadValue; - - rc = dixLookupDevice(&ptr, r->deviceid, client, - DixDestroyAccess); - if (rc != Success) - goto unwind; - - if (!ptr->isMaster) - { - client->errorValue = r->deviceid; - rc = BadDevice; - goto unwind; - } - - /* XXX: For now, don't allow removal of VCP, VCK */ - if (ptr == inputInfo.pointer || - ptr == inputInfo.keyboard) - { - rc = BadDevice; - goto unwind; - } - - /* disable keyboards first */ - if (IsPointerDevice(ptr)) - { - rc = dixLookupDevice(&keybd, - ptr->spriteInfo->paired->id, - client, - DixDestroyAccess); - if (rc != Success) - goto unwind; - } - else - { - keybd = ptr; - rc = dixLookupDevice(&ptr, - keybd->spriteInfo->paired->id, - client, - DixDestroyAccess); - if (rc != Success) - goto unwind; - } - - - /* Disabling sends the devices floating, reattach them if - * desired. */ - if (r->returnMode == AttachToMaster) - { - DeviceIntPtr attached, - newptr, - newkeybd; - - rc = dixLookupDevice(&newptr, r->returnPointer, - client, DixWriteAccess); - if (rc != Success) - goto unwind; - - if (!newptr->isMaster) - { - client->errorValue = r->returnPointer; - rc = BadDevice; - goto unwind; - } - - rc = dixLookupDevice(&newkeybd, r->returnKeyboard, - client, DixWriteAccess); - if (rc != Success) - goto unwind; - - if (!newkeybd->isMaster) - { - client->errorValue = r->returnKeyboard; - rc = BadDevice; - goto unwind; - } - - for (attached = inputInfo.devices; - attached; - attached = attached->next) - { - if (!attached->isMaster) { - if (attached->u.master == ptr) - AttachDevice(client, attached, newptr); - if (attached->u.master == keybd) - AttachDevice(client, attached, newkeybd); - } - } - } - - /* can't disable until we removed pairing */ - keybd->spriteInfo->paired = NULL; - ptr->spriteInfo->paired = NULL; - DisableDevice(keybd); - DisableDevice(ptr); - - RemoveDevice(keybd); - RemoveDevice(ptr); - nchanges++; - } - break; - case CH_ChangeAttachment: - { - xChangeAttachmentInfo* c = (xChangeAttachmentInfo*)any; - - rc = dixLookupDevice(&ptr, c->deviceid, client, - DixWriteAccess); - if (rc != Success) - goto unwind; - - if (ptr->isMaster) - { - client->errorValue = c->deviceid; - rc = BadDevice; - goto unwind; - } - - if (c->changeMode == Floating) - AttachDevice(client, ptr, NULL); - else - { - DeviceIntPtr newmaster; - rc = dixLookupDevice(&newmaster, c->newMaster, - client, DixWriteAccess); - if (rc != Success) - goto unwind; - if (!newmaster->isMaster) - { - client->errorValue = c->newMaster; - rc = BadDevice; - goto unwind; - } - - if (!((IsPointerDevice(newmaster) && - IsPointerDevice(ptr)) || - (IsKeyboardDevice(newmaster) && - IsKeyboardDevice(ptr)))) - { - rc = BadDevice; - goto unwind; - } - AttachDevice(client, ptr, newmaster); - } - nchanges++; - } - break; - } - - any = (xAnyHierarchyChangeInfo*)((char*)any + any->length); - } - -unwind: - - if (nchanges > 0) /* even if an error occured, we need to send an event if - we changed anything in the hierarchy. */ - { - ev.type = GenericEvent; - ev.extension = IReqCode; - ev.length = 0; - ev.evtype = XI_DeviceHierarchyChangedNotify; - ev.time = GetTimeInMillis(); - - SendEventToAllWindows(&dummyDev, XI_DeviceHierarchyChangedMask, - (xEvent*)&ev, 1); - } - return rc; -} - diff --git a/Xi/chdevhier.h b/Xi/chdevhier.h deleted file mode 100644 index 07afd53ec..000000000 --- a/Xi/chdevhier.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright 2007-2008 Peter Hutterer - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - * Author: Peter Hutterer, University of South Australia, NICTA - */ - -/*********************************************************************** - * - * Request change in the device hierarchy. - * - */ - -#ifdef HAVE_DIX_CONFIG_H -#include -#endif - -#ifndef CHDEVHIER_H -#define CHDEVHIER_H 1 - -int SProcXChangeDeviceHierarchy(ClientPtr /* client */); -int ProcXChangeDeviceHierarchy(ClientPtr /* client */); - -#endif diff --git a/Xi/extgrbdev.c b/Xi/extgrbdev.c deleted file mode 100644 index 050984a8e..000000000 --- a/Xi/extgrbdev.c +++ /dev/null @@ -1,216 +0,0 @@ -/* - * Copyright 2007-2008 Peter Hutterer - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - * Author: Peter Hutterer, University of South Australia, NICTA - */ - -/*********************************************************************** - * - * Request to fake data for a given device. - * - */ - -#define NEED_EVENTS -#define NEED_REPLIES -#ifdef HAVE_DIX_CONFIG_H -#include -#endif - -#include /* for inputstr.h */ -#include /* Request macro */ -#include "inputstr.h" /* DeviceIntPtr */ -#include "windowstr.h" /* window structure */ -#include "scrnintstr.h" /* screen structure */ -#include -#include -#include -#include "extnsionst.h" -#include "exevents.h" -#include "exglobals.h" - -#include "grabdev.h" /* CreateMaskFromList */ - -#include "extgrbdev.h" - -int -SProcXExtendedGrabDevice(ClientPtr client) -{ - char n; - int i; - long* p; - - REQUEST(xExtendedGrabDeviceReq); - swaps(&stuff->length, n); - REQUEST_AT_LEAST_SIZE(xExtendedGrabDeviceReq); - - swapl(&stuff->grab_window, n); - swapl(&stuff->time, n); - swapl(&stuff->confine_to, n); - swapl(&stuff->cursor, n); - swaps(&stuff->event_count, n); - swaps(&stuff->generic_event_count, n); - - p = (long *)&stuff[1]; - for (i = 0; i < stuff->event_count; i++) { - swapl(p, n); - p++; - } - - for (i = 0; i < stuff->generic_event_count; i++) { - p++; /* first 4 bytes are extension type and padding */ - swapl(p, n); - p++; - } - - return ProcXExtendedGrabDevice(client); -} - - -int -ProcXExtendedGrabDevice(ClientPtr client) -{ - xExtendedGrabDeviceReply rep; - DeviceIntPtr dev; - int rc = Success, - errval = 0, - i; - WindowPtr grab_window, - confineTo = 0; - CursorPtr cursor = NULL; - struct tmask tmp[EMASKSIZE]; - TimeStamp time; - XGenericEventMask* xgeMask; - GenericMaskPtr gemasks = NULL; - - REQUEST(xExtendedGrabDeviceReq); - REQUEST_AT_LEAST_SIZE(xExtendedGrabDeviceReq); - - rep.repType = X_Reply; - rep.RepType = X_ExtendedGrabDevice; - rep.sequenceNumber = client->sequence; - rep.length = 0; - - if (stuff->length != (sizeof(xExtendedGrabDeviceReq) >> 2) + - stuff->event_count + 2 * stuff->generic_event_count) - { - errval = 0; - rc = BadLength; - goto cleanup; - } - - rc = dixLookupDevice(&dev, stuff->deviceid, client, DixGrabAccess); - if (rc != Success) { - goto cleanup; - } - - rc = dixLookupWindow(&grab_window, - stuff->grab_window, - client, - DixReadAccess); - if (rc != Success) - { - errval = stuff->grab_window; - goto cleanup; - } - - if (stuff->confine_to) - { - rc = dixLookupWindow(&confineTo, - stuff->confine_to, - client, - DixReadAccess); - if (rc != Success) - { - errval = stuff->confine_to; - goto cleanup; - } - } - - if (stuff->cursor) - { - cursor = (CursorPtr)SecurityLookupIDByType(client, - stuff->cursor, - RT_CURSOR, - DixReadAccess); - if (!cursor) - { - errval = stuff->cursor; - rc = BadCursor; - goto cleanup; - } - } - - if (CreateMaskFromList(client, - (XEventClass*)&stuff[1], - stuff->event_count, - tmp, - dev, - X_GrabDevice) != Success) - return Success; - - time = ClientTimeToServerTime(stuff->time); - - if (stuff->generic_event_count) - { - xgeMask = - (XGenericEventMask*)(((XEventClass*)&stuff[1]) + stuff->event_count); - - gemasks = xcalloc(1, sizeof(GenericMaskRec)); - gemasks->resource = FakeClientID(client->index); - gemasks->next = NULL; - gemasks->eventMask[xgeMask->extension & 0x7F] = xgeMask->evmask; - - xgeMask++; - for (i = 1; i < stuff->generic_event_count; i++, xgeMask++) - gemasks->eventMask[xgeMask->extension & 0x7F]= xgeMask->evmask; - } - - rep.status = ExtGrabDevice(client, dev, stuff->device_mode, - grab_window, confineTo, time, - stuff->owner_events, cursor, - tmp[stuff->deviceid].mask, - gemasks); -cleanup: - - if (gemasks) - xfree(gemasks); - - if (rc == Success) - { - WriteReplyToClient(client, sizeof(xGrabDeviceReply), &rep); - } - else - { - return rc; - } - return Success; -} - -void -SRepXExtendedGrabDevice(ClientPtr client, int size, - xExtendedGrabDeviceReply* rep) -{ - char n; - swaps(&rep->sequenceNumber, n); - swaps(&rep->length, n); - WriteToClient(client, size, (char*)rep); -} diff --git a/Xi/extgrbdev.h b/Xi/extgrbdev.h deleted file mode 100644 index 6e3e371a5..000000000 --- a/Xi/extgrbdev.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright 2007-2008 Peter Hutterer - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - * Author: Peter Hutterer, University of South Australia, NICTA - */ - -#ifdef HAVE_DIX_CONFIG_H -#include -#endif - -#ifndef EXTGRBDEV_H -#define EXTGRBDEV_H 1 - -int SProcXExtendedGrabDevice(ClientPtr /* client */ - ); - -int ProcXExtendedGrabDevice(ClientPtr /* client */ - ); - -void SRepXExtendedGrabDevice(ClientPtr client, - int size, - xExtendedGrabDeviceReply* rep); - -#endif /* EXTGRBDEV_H */ diff --git a/Xi/extinit.c b/Xi/extinit.c index 673a7ee15..d167b7680 100644 --- a/Xi/extinit.c +++ b/Xi/extinit.c @@ -76,19 +76,15 @@ SOFTWARE. /* modules local to Xi */ #include "allowev.h" -#include "chdevcur.h" #include "chgdctl.h" -#include "chdevhier.h" #include "chgfctl.h" #include "chgkbd.h" #include "chgprop.h" #include "chgptr.h" #include "closedev.h" -#include "extgrbdev.h" #include "devbell.h" #include "getbmap.h" #include "getbmap.h" -#include "getcptr.h" #include "getdctl.h" #include "getfctl.h" #include "getfocus.h" @@ -104,13 +100,11 @@ SOFTWARE. #include "gtmotion.h" #include "listdev.h" #include "opendev.h" -#include "querydp.h" #include "queryst.h" #include "selectev.h" #include "sendexev.h" #include "chgkmap.h" #include "setbmap.h" -#include "setcptr.h" #include "setdval.h" #include "setfocus.h" #include "setmmap.h" @@ -118,8 +112,6 @@ SOFTWARE. #include "ungrdev.h" #include "ungrdevb.h" #include "ungrdevk.h" -#include "warpdevp.h" -#include "xiselev.h" #include "xiproperty.h" @@ -134,8 +126,7 @@ Mask ExtExclusiveMasks[EMASKSIZE]; * Evtype is index, mask is value at index. */ static Mask xi_filters[4] = { - XI_DeviceHierarchyChangedMask, - XI_DeviceClassesChangedMask, + XI_DeviceClassesChangedMask }; static struct dev_type @@ -211,16 +202,7 @@ static int (*ProcIVector[])(ClientPtr) = { ProcXListDeviceProperties, /* 36 */ ProcXChangeDeviceProperty, /* 37 */ ProcXDeleteDeviceProperty, /* 38 */ - ProcXGetDeviceProperty, /* 39 */ - /* XI 2 */ - ProcXQueryDevicePointer, /* 40 */ - ProcXWarpDevicePointer, /* 41 */ - ProcXChangeDeviceCursor, /* 42 */ - ProcXChangeDeviceHierarchy, /* 43 */ - ProcXSetClientPointer, /* 44 */ - ProcXGetClientPointer, /* 45 */ - ProcXiSelectEvent, /* 46 */ - ProcXExtendedGrabDevice /* 47 */ + ProcXGetDeviceProperty /* 39 */ }; /* For swapped clients */ @@ -264,15 +246,7 @@ static int (*SProcIVector[])(ClientPtr) = { SProcXListDeviceProperties, /* 36 */ SProcXChangeDeviceProperty, /* 37 */ SProcXDeleteDeviceProperty, /* 38 */ - SProcXGetDeviceProperty, /* 39 */ - SProcXQueryDevicePointer, /* 40 */ - SProcXWarpDevicePointer, /* 41 */ - SProcXChangeDeviceCursor, /* 42 */ - SProcXChangeDeviceHierarchy, /* 43 */ - SProcXSetClientPointer, /* 44 */ - SProcXGetClientPointer, /* 45 */ - SProcXiSelectEvent, /* 46 */ - SProcXExtendedGrabDevice /* 47 */ + SProcXGetDeviceProperty /* 39 */ }; /***************************************************************** @@ -472,13 +446,6 @@ SReplyIDispatch(ClientPtr client, int len, xGrabDeviceReply * rep) SRepXListDeviceProperties(client, len, (xListDevicePropertiesReply*)rep); else if (rep->RepType == X_GetDeviceProperty) SRepXGetDeviceProperty(client, len, (xGetDevicePropertyReply *) rep); - else if (rep->RepType == X_QueryDevicePointer) - SRepXQueryDevicePointer(client, len, - (xQueryDevicePointerReply *) rep); - else if (rep->RepType == X_GetClientPointer) - SRepXGetClientPointer(client, len, (xGetClientPointerReply*) rep); - else if (rep->RepType == X_ExtendedGrabDevice) - SRepXExtendedGrabDevice(client, len, (xExtendedGrabDeviceReply*) rep); else { FatalError("XINPUT confused sending swapped reply"); } diff --git a/Xi/getcptr.c b/Xi/getcptr.c deleted file mode 100644 index ae45b13ae..000000000 --- a/Xi/getcptr.c +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright 2007-2008 Peter Hutterer - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - * Author: Peter Hutterer, University of South Australia, NICTA - */ - -#define NEED_EVENTS -#define NEED_REPLIES -#ifdef HAVE_DIX_CONFIG_H -#include -#endif - -#include /* for inputstr.h */ -#include /* Request macro */ -#include "inputstr.h" /* DeviceIntPtr */ -#include "windowstr.h" /* window structure */ -#include "scrnintstr.h" /* screen structure */ -#include -#include -#include "extnsionst.h" -#include "extinit.h" /* LookupDeviceIntRec */ -#include "exevents.h" -#include "exglobals.h" - -#include "getcptr.h" - -/*********************************************************************** - * This procedure allows a client to query another client's client pointer - * setting. - */ - -int -SProcXGetClientPointer(ClientPtr client) -{ - char n; - REQUEST(xGetClientPointerReq); - - swaps(&stuff->length, n); - swapl(&stuff->win, n); - return ProcXGetClientPointer(client); -} - -int ProcXGetClientPointer(ClientPtr client) -{ - int err; - WindowPtr win; - ClientPtr winclient; - xGetClientPointerReply rep; - REQUEST(xGetClientPointerReq); - REQUEST_SIZE_MATCH(xGetClientPointerReq); - - err = dixLookupWindow(&win, stuff->win, client, DixReadAccess); - if (err != Success) - { - SendErrorToClient(client, IReqCode, X_GetClientPointer, - stuff->win, err); - return Success; - } - - winclient = wClient(win); - - rep.repType = X_Reply; - rep.RepType = X_GetClientPointer; - rep.length = 0; - rep.sequenceNumber = client->sequence; - rep.set = (winclient->clientPtr != NULL); - rep.deviceid = (winclient->clientPtr) ? winclient->clientPtr->id : 0; - - WriteReplyToClient(client, sizeof(xGetClientPointerReply), &rep); - return Success; -} - -/*********************************************************************** - * - * This procedure writes the reply for the XGetClientPointer function, - * if the client and server have a different byte ordering. - * - */ - -void -SRepXGetClientPointer(ClientPtr client, int size, - xGetClientPointerReply* rep) -{ - char n; - swaps(&rep->sequenceNumber, n); - swapl(&rep->length, n); - WriteToClient(client, size, (char *)rep); -} - diff --git a/Xi/getcptr.h b/Xi/getcptr.h deleted file mode 100644 index 27458338d..000000000 --- a/Xi/getcptr.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright 2007-2008 Peter Hutterer - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - * Author: Peter Hutterer, University of South Australia, NICTA - */ - -#ifdef HAVE_DIX_CONFIG_H -#include -#endif - -#ifndef GETCPTR_H -#define GETCPTR_H 1 -int SProcXGetClientPointer(ClientPtr /* client */ - ); - -int ProcXGetClientPointer(ClientPtr /* client */ - ); - -void SRepXGetClientPointer(ClientPtr /* client */, - int /* size */, - xGetClientPointerReply* /* rep */ - ); - -#endif /* GETCPTR_H */ diff --git a/Xi/querydp.c b/Xi/querydp.c deleted file mode 100644 index 744a295ff..000000000 --- a/Xi/querydp.c +++ /dev/null @@ -1,168 +0,0 @@ -/* - * Copyright 2007-2008 Peter Hutterer - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - * Author: Peter Hutterer, University of South Australia, NICTA - */ - -/*********************************************************************** - * - * Request to query the pointer location of an extension input device. - * - */ - -#define NEED_EVENTS -#define NEED_REPLIES -#ifdef HAVE_DIX_CONFIG_H -#include -#endif - -#include /* for inputstr.h */ -#include /* Request macro */ -#include "inputstr.h" /* DeviceIntPtr */ -#include "windowstr.h" /* window structure */ -#include -#include -#include "extnsionst.h" -#include "exevents.h" -#include "exglobals.h" - -#ifdef PANORAMIX -#include "panoramiXsrv.h" -#endif - -#include "querydp.h" - -/*********************************************************************** - * - * This procedure allows a client to query the pointer of a device. - * - */ - -int -SProcXQueryDevicePointer(ClientPtr client) -{ - char n; - - REQUEST(xQueryDevicePointerReq); - swaps(&stuff->length, n); - return (ProcXQueryDevicePointer(client)); -} - -int -ProcXQueryDevicePointer(ClientPtr client) -{ - int rc; - xQueryDevicePointerReply rep; - DeviceIntPtr pDev, kbd; - WindowPtr pWin, t; - SpritePtr pSprite; - - REQUEST(xQueryDevicePointerReq); - REQUEST_SIZE_MATCH(xQueryDevicePointerReq); - - rc = dixLookupDevice(&pDev, stuff->deviceid, client, DixReadAccess); - if (rc != Success) - return rc; - - if (pDev->valuator == NULL) - { - client->errorValue = stuff->deviceid; - return BadDevice; - } - - rc = dixLookupWindow(&pWin, stuff->win, client, DixReadAccess); - if (rc != Success) - { - SendErrorToClient(client, IReqCode, X_QueryDevicePointer, - stuff->win, rc); - return Success; - } - - if (pDev->valuator->motionHintWindow) - MaybeStopHint(pDev, client); - - kbd = GetPairedDevice(pDev); - - pSprite = pDev->spriteInfo->sprite; - rep.repType = X_Reply; - rep.RepType = X_QueryDevicePointer; - rep.length = 0; - rep.sequenceNumber = client->sequence; - rep.mask = pDev->button->state | (kbd && kbd->key) ? kbd->key->state : 0; - rep.root = (GetCurrentRootWindow(pDev))->drawable.id; - rep.rootX = pSprite->hot.x; - rep.rootY = pSprite->hot.y; - rep.child = None; - rep.deviceid = pDev->id; - - if (pSprite->hot.pScreen == pWin->drawable.pScreen) - { - rep.sameScreen = xTrue; - rep.winX = pSprite->hot.x - pWin->drawable.x; - rep.winY = pSprite->hot.y - pWin->drawable.y; - for (t = pSprite->win; t; t = t->parent) - if (t->parent == pWin) - { - rep.child = t->drawable.id; - break; - } - } else - { - rep.sameScreen = xFalse; - rep.winX = 0; - rep.winY = 0; - } - -#ifdef PANORAMIX - if(!noPanoramiXExtension) { - rep.rootX += panoramiXdataPtr[0].x; - rep.rootY += panoramiXdataPtr[0].y; - if (stuff->win == rep.root) - { - rep.winX += panoramiXdataPtr[0].x; - rep.winY += panoramiXdataPtr[0].y; - } - } -#endif - - WriteReplyToClient(client, sizeof(xQueryDevicePointerReply), &rep); - return Success; -} - -/*********************************************************************** - * - * This procedure writes the reply for the XQueryDevicePointer function, - * if the client and server have a different byte ordering. - * - */ - -void -SRepXQueryDevicePointer(ClientPtr client, int size, - xQueryDevicePointerReply * rep) -{ - char n; - - swaps(&rep->sequenceNumber, n); - swapl(&rep->length, n); - WriteToClient(client, size, (char *)rep); -} - diff --git a/Xi/querydp.h b/Xi/querydp.h deleted file mode 100644 index 5370ed49a..000000000 --- a/Xi/querydp.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright 2007-2008 Peter Hutterer - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - * Author: Peter Hutterer, University of South Australia, NICTA - */ - -#ifdef HAVE_DIX_CONFIG_H -#include -#endif - -#ifndef QUERYDP_H -#define QUERYDP_H 1 - -int SProcXQueryDevicePointer(ClientPtr /* client */ - ); - -int ProcXQueryDevicePointer(ClientPtr /* client */ - ); - -void SRepXQueryDevicePointer(ClientPtr /* client */ , - int /* size */ , - xQueryDevicePointerReply * /* rep */ - ); - -#endif /* QUERYDP_H */ diff --git a/Xi/setcptr.c b/Xi/setcptr.c deleted file mode 100644 index 81ce66bd5..000000000 --- a/Xi/setcptr.c +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Copyright 2007-2008 Peter Hutterer - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - * Author: Peter Hutterer, University of South Australia, NICTA - */ - -/*********************************************************************** - * - * Request to set the client pointer for the owner of the given window. - * All subsequent calls that are ambiguous will choose the client pointer as - * default value. - */ - - -#define NEED_EVENTS -#define NEED_REPLIES -#ifdef HAVE_DIX_CONFIG_H -#include -#endif - -#include /* for inputstr.h */ -#include /* Request macro */ -#include "inputstr.h" /* DeviceIntPtr */ -#include "windowstr.h" /* window structure */ -#include "scrnintstr.h" /* screen structure */ -#include -#include -#include "extnsionst.h" -#include "exevents.h" -#include "exglobals.h" - -#include "setcptr.h" - -int -SProcXSetClientPointer(ClientPtr client) -{ - char n; - - REQUEST(xSetClientPointerReq); - swaps(&stuff->length, n); - REQUEST_SIZE_MATCH(xSetClientPointerReq); - return (ProcXSetClientPointer(client)); -} - -int -ProcXSetClientPointer(ClientPtr client) -{ - DeviceIntPtr pDev; - ClientPtr targetClient; - int rc; - - REQUEST(xSetClientPointerReq); - REQUEST_SIZE_MATCH(xSetClientPointerReq); - - - rc = dixLookupDevice(&pDev, stuff->deviceid, client, DixWriteAccess); - if (rc != Success) - return rc; - - if (!IsPointerDevice(pDev) || !pDev->isMaster) - { - client->errorValue = stuff->deviceid; - return BadDevice; - } - - if (stuff->win != None) - { - rc = dixLookupClient(&targetClient, stuff->win, client, - DixWriteAccess); - - if (rc != Success) - return rc; - - } else - targetClient = client; - - if (!SetClientPointer(targetClient, client, pDev)) - { - client->errorValue = stuff->win; - return BadAccess; - } - - return Success; -} diff --git a/Xi/setcptr.h b/Xi/setcptr.h deleted file mode 100644 index df38addee..000000000 --- a/Xi/setcptr.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright 2007-2008 Peter Hutterer - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - * Author: Peter Hutterer, University of South Australia, NICTA - */ - -#ifdef HAVE_DIX_CONFIG_H -#include -#endif - -#ifndef SETCPTR_H -#define SETCPTR_H 1 - -int SProcXSetClientPointer(ClientPtr /* client */); -int ProcXSetClientPointer(ClientPtr /* client */); - -#endif /* SETCPTR_H */ diff --git a/Xi/warpdevp.c b/Xi/warpdevp.c deleted file mode 100644 index c8e8d6116..000000000 --- a/Xi/warpdevp.c +++ /dev/null @@ -1,175 +0,0 @@ -/* - * Copyright 2007-2008 Peter Hutterer - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - * Author: Peter Hutterer, University of South Australia, NICTA - */ - -/*********************************************************************** - * - * Request to Warp the pointer location of an extension input device. - * - */ - -#define NEED_EVENTS -#define NEED_REPLIES -#ifdef HAVE_DIX_CONFIG_H -#include -#endif - -#include /* for inputstr.h */ -#include /* Request macro */ -#include "inputstr.h" /* DeviceIntPtr */ -#include "windowstr.h" /* window structure */ -#include "scrnintstr.h" /* screen structure */ -#include -#include -#include "extnsionst.h" -#include "exevents.h" -#include "exglobals.h" -#include "mipointer.h" /* for miPointerUpdateSprite */ - - -#include "warpdevp.h" -/*********************************************************************** - * - * This procedure allows a client to warp the pointer of a device. - * - */ - -int -SProcXWarpDevicePointer(ClientPtr client) -{ - char n; - - REQUEST(xWarpDevicePointerReq); - swaps(&stuff->length, n); - return (ProcXWarpDevicePointer(client)); -} - -int -ProcXWarpDevicePointer(ClientPtr client) -{ - int rc; - int x, y; - WindowPtr dest = NULL; - DeviceIntPtr pDev; - SpritePtr pSprite; - ScreenPtr newScreen; - - REQUEST(xWarpDevicePointerReq); - REQUEST_SIZE_MATCH(xWarpDevicePointerReq); - - /* FIXME: panoramix stuff is missing, look at ProcWarpPointer */ - - rc = dixLookupDevice(&pDev, stuff->deviceid, client, DixWriteAccess); - - if (rc != Success) - return rc; - - if (stuff->dst_win != None) - { - rc = dixLookupWindow(&dest, stuff->dst_win, client, DixReadAccess); - if (rc != Success) - { - return rc; - } - } - - pSprite = pDev->spriteInfo->sprite; - x = pSprite->hotPhys.x; - y = pSprite->hotPhys.y; - - if (stuff->src_win != None) - { - int winX, winY; - WindowPtr src; - - rc = dixLookupWindow(&src, stuff->src_win, client, DixReadAccess); - if (rc != Success) - { - return rc; - } - - winX = src->drawable.x; - winY = src->drawable.y; - if (src->drawable.pScreen != pSprite->hotPhys.pScreen || - x < winX + stuff->src_x || - y < winY + stuff->src_y || - (stuff->src_width != 0 && - winX + stuff->src_x + (int)stuff->src_width < 0) || - (stuff->src_height != 0 && - winY + stuff->src_y + (int)stuff->src_height < y) || - !PointInWindowIsVisible(src, x, y)) - return Success; - } - - if (dest) - { - x = dest->drawable.x; - y = dest->drawable.y; - newScreen = dest->drawable.pScreen; - } else - newScreen = pSprite->hotPhys.pScreen; - - x += stuff->dst_x; - y += stuff->dst_y; - - if (x < 0) - x = 0; - else if (x > newScreen->width) - x = newScreen->width - 1; - - if (y < 0) - y = 0; - else if (y > newScreen->height) - y = newScreen->height - 1; - - if (newScreen == pSprite->hotPhys.pScreen) - { - if (x < pSprite->physLimits.x1) - x = pSprite->physLimits.x1; - else if (x >= pSprite->physLimits.x2) - x = pSprite->physLimits.x2 - 1; - - if (y < pSprite->physLimits.y1) - y = pSprite->physLimits.y1; - else if (y >= pSprite->physLimits.y2) - y = pSprite->physLimits.y2 - 1; - - if (pSprite->hotShape) - ConfineToShape(pDev, pSprite->hotShape, &x, &y); - (*newScreen->SetCursorPosition)(pDev, newScreen, x, y, TRUE); - } else if (!PointerConfinedToScreen(pDev)) - { - NewCurrentScreen(pDev, newScreen, x, y); - } - - /* if we don't update the device, we get a jump next time it moves */ - pDev->last.valuators[0] = x; - pDev->last.valuators[1] = x; - miPointerUpdateSprite(pDev); - - /* FIXME: XWarpPointer is supposed to generate an event. It doesn't do it - here though. */ - return Success; -} - diff --git a/Xi/warpdevp.h b/Xi/warpdevp.h deleted file mode 100644 index 00a4dffad..000000000 --- a/Xi/warpdevp.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright 2007-2008 Peter Hutterer - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - * Author: Peter Hutterer, University of South Australia, NICTA - */ - -#ifdef HAVE_DIX_CONFIG_H -#include -#endif - -#ifndef WARPDEVP_H -#define WARPDEVP_H 1 - -int SProcXWarpDevicePointer(ClientPtr /* client */ - ); - -int ProcXWarpDevicePointer(ClientPtr /* client */ - ); - -#endif /* WARPDEVP_H */ diff --git a/Xi/xiselev.c b/Xi/xiselev.c deleted file mode 100644 index 0f8433451..000000000 --- a/Xi/xiselev.c +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Copyright 2007-2008 Peter Hutterer - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - * Author: Peter Hutterer, University of South Australia, NICTA - */ - -#define NEED_EVENTS -#define NEED_REPLIES - -#ifdef HAVE_DIX_CONFIG_H -#include -#endif - -#include - -#include "dixstruct.h" -#include "windowstr.h" - -#include "exglobals.h" -#include "xiselev.h" -#include "geext.h" - -int -SProcXiSelectEvent(ClientPtr client) -{ - char n; - - REQUEST(xXiSelectEventReq); - swaps(&stuff->length, n); - REQUEST_SIZE_MATCH(xXiSelectEventReq); - swapl(&stuff->window, n); - swapl(&stuff->mask, n); - return (ProcXiSelectEvent(client)); -} - - -int -ProcXiSelectEvent(ClientPtr client) -{ - int rc; - WindowPtr pWin; - DeviceIntPtr pDev; - REQUEST(xXiSelectEventReq); - REQUEST_SIZE_MATCH(xXiSelectEventReq); - - rc = dixLookupWindow(&pWin, stuff->window, client, DixReceiveAccess); - if (rc != Success) - return rc; - - if (stuff->deviceid & (0x1 << 7)) /* all devices */ - pDev = NULL; - else { - rc = dixLookupDevice(&pDev, stuff->deviceid, client, DixReadAccess); - if (rc != Success) - return rc; - } - - GEWindowSetMask(client, pDev, pWin, IReqCode, stuff->mask); - - return Success; -} - diff --git a/Xi/xiselev.h b/Xi/xiselev.h deleted file mode 100644 index b751c5d1b..000000000 --- a/Xi/xiselev.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright 2007-2008 Peter Hutterer - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - * Author: Peter Hutterer, University of South Australia, NICTA - */ - -#ifdef HAVE_DIX_CONFIG_H -#include -#endif - -#ifndef XISELEV_H -#define XISELEV_H 1 - -int SProcXiSelectEvent(ClientPtr /* client */ - ); - -int ProcXiSelectEvent(ClientPtr /* client */ - ); - -#endif /* XISELEV_H */ -