summaryrefslogtreecommitdiff
path: root/mpx/selectev.c
diff options
context:
space:
mode:
Diffstat (limited to 'mpx/selectev.c')
-rw-r--r--mpx/selectev.c146
1 files changed, 0 insertions, 146 deletions
diff --git a/mpx/selectev.c b/mpx/selectev.c
deleted file mode 100644
index fc2ff9c10..000000000
--- a/mpx/selectev.c
+++ /dev/null
@@ -1,146 +0,0 @@
-/* Copyright 2006 by Peter Hutterer <peter@cs.unisa.edu.au> */
-
-
-#ifdef HAVE_DIX_CONFIG_H
-#include <dix-config.h>
-#endif
-
-#include <X11/X.h> /* for inputstr.h */
-#include <X11/Xproto.h> /* Request macro */
-#include "inputstr.h" /* DeviceIntPtr */
-#include "windowstr.h" /* window structure */
-#include <X11/extensions/MPX.h>
-#include <X11/extensions/MPXproto.h>
-#include "extnsionst.h"
-#include "mpxextinit.h" /* LookupDeviceIntRec */
-#include "mpxglobals.h"
-#include "mpxevents.h"
-
-#include "selectev.h"
-
-/* functions borrowed from XI */
-extern void RecalculateDeviceDeliverableEvents(
- WindowPtr /* pWin */);
-
-extern int AddExtensionClient (
- WindowPtr /* pWin */,
- ClientPtr /* client */,
- Mask /* mask */,
- int /* mskidx */);
-extern Bool
-ShouldFreeInputMasks(WindowPtr /* pWin */,
- Bool /* ignoreSelectedEvents */);
-
-/***********************************************************************
- *
- * Handle requests from clients with a different byte order.
- *
- */
-
-int
-SProcMPXSelectEvents(register ClientPtr client)
-{
- register char n;
-
- REQUEST(xMPXSelectEventsReq);
- swaps(&stuff->length, n);
- REQUEST_SIZE_MATCH(xMPXSelectEventsReq);
- swapl(&stuff->window, n);
- return (ProcMPXSelectEvents(client));
-}
-
-/***********************************************************************
- *
- * This procedure selects input from an extension device.
- *
- */
-
-int
-ProcMPXSelectEvents(register ClientPtr client)
-{
- int ret;
- WindowPtr pWin;
-
- REQUEST(xMPXSelectEventsReq);
- REQUEST_SIZE_MATCH(xMPXSelectEventsReq);
-
- if (stuff->length != (sizeof(xMPXSelectEventsReq) >> 2))
- {
- SendErrorToClient(client, MPXReqCode, X_MPXSelectEvents, 0,
- BadLength);
- return Success;
- }
-
- pWin = (WindowPtr) LookupWindow(stuff->window, client);
- if (!pWin)
- {
- client->errorValue = stuff->window;
- SendErrorToClient(client, MPXReqCode, X_MPXSelectEvents, 0,
- BadWindow);
- return Success;
- }
-
- if (stuff->mask >= MPXHighestMask)
- {
- client->errorValue = stuff->mask;
- SendErrorToClient(client, MPXReqCode, X_MPXSelectEvents, 0,
- BadValue);
- }
-
- if ((ret = MPXSelectForWindow(pWin, client, stuff->mask)) != Success)
- {
- SendErrorToClient(client, MPXReqCode, X_MPXSelectEvents, 0, ret);
- return Success;
- }
-
- return Success;
-}
-
-/**
- * Selects a set of events for a given window.
- * Different to XI, MPX is not device dependent. Either the client gets events
- * from all devices or none.
- *
- * This method borrows some functions from XI, due to the piggyback on the
- * core pointer (see comment in extinit.c)
- */
-int
-MPXSelectForWindow(WindowPtr pWin, ClientPtr client, int mask)
-{
- InputClientsPtr others;
- int ret;
-
- if (mask >= MPXHighestMask)
- {
- client->errorValue = mask;
- return BadValue;
- }
-
- if (wOtherInputMasks(pWin))
- {
- for (others = wOtherInputMasks(pWin)->inputClients; others;
- others = others->next)
- {
- if (SameClient(others, client)) {
- others->mask[MPXmskidx] = mask;
- if (mask == 0)
- {
- /* clean up stuff */
- RecalculateDeviceDeliverableEvents(pWin);
- if (ShouldFreeInputMasks(pWin, FALSE))
- FreeResource(others->resource, RT_NONE);
- return Success;
- }
- goto maskSet;
- }
- }
- }
- /* borrow from XI here */
- if ((ret = AddExtensionClient(pWin, client, mask, MPXmskidx)) != Success)
- return ret;
-maskSet:
- RecalculateDeviceDeliverableEvents(pWin);
- return Success;
-
-}
-