summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Xext/xtest.c33
-rw-r--r--include/input.h1
-rw-r--r--include/inputstr.h3
-rw-r--r--test/xi2/protocol-common.c1
-rw-r--r--test/xtest.c1
5 files changed, 9 insertions, 30 deletions
diff --git a/Xext/xtest.c b/Xext/xtest.c
index 6ee8430e8..2c733d8a7 100644
--- a/Xext/xtest.c
+++ b/Xext/xtest.c
@@ -62,10 +62,6 @@ extern int DeviceValuator;
* other's memory */
static EventListPtr xtest_evlist;
-/* Used to store if a device is an XTest Virtual device */
-static DevPrivateKeyRec XTestDevicePrivateKeyRec;
-#define XTestDevicePrivateKey (&XTestDevicePrivateKeyRec)
-
/**
* xtestpointer
* is the virtual pointer for XTest. It is the first slave
@@ -99,18 +95,9 @@ static DISPATCH_PROC(SProcXTestFakeInput);
static DISPATCH_PROC(SProcXTestGetVersion);
static DISPATCH_PROC(SProcXTestGrabControl);
-Bool
-XTestInitPrivates(void)
-{
- return dixRegisterPrivateKey(&XTestDevicePrivateKeyRec, PRIVATE_DEVICE, 0);
-}
-
void
XTestExtensionInit(INITARGS)
{
- if (!XTestInitPrivates())
- return;
-
AddExtension(XTestExtensionName, 0, 0,
ProcXTestDispatch, SProcXTestDispatch,
NULL, StandardMinorOpcode);
@@ -654,8 +641,8 @@ int AllocXTestDevice (ClientPtr client, char* name,
retval = AllocDevicePair( client, xtestname, ptr, keybd, CorePointerProc, CoreKeyboardProc, FALSE);
if ( retval == Success ){
- dixSetPrivate(&((*ptr)->devPrivates), XTestDevicePrivateKey, (void *)(intptr_t)master_ptr->id);
- dixSetPrivate(&((*keybd)->devPrivates), XTestDevicePrivateKey, (void *)(intptr_t)master_keybd->id);
+ (*ptr)->xtest_master_id = master_ptr->id;
+ (*keybd)->xtest_master_id = master_keybd->id;
XIChangeDeviceProperty(*ptr, XIGetKnownProperty(XI_PROP_XTEST_DEVICE),
XA_INTEGER, 8, PropModeReplace, 1, &dummy,
@@ -683,23 +670,15 @@ int AllocXTestDevice (ClientPtr client, char* name,
BOOL
IsXTestDevice(DeviceIntPtr dev, DeviceIntPtr master)
{
- int is_XTest = FALSE;
- int mid;
- void *tmp; /* shut up, gcc! */
-
if (IsMaster(dev))
- return is_XTest;
-
- tmp = dixLookupPrivate(&dev->devPrivates, XTestDevicePrivateKey);
- mid = (intptr_t)tmp;
+ return FALSE;
/* deviceid 0 is reserved for XIAllDevices, non-zero mid means XTest
* device */
- if ((!master && mid) ||
- (master && mid == master->id))
- is_XTest = TRUE;
+ if (master)
+ return dev->xtest_master_id == master->id;
- return is_XTest;
+ return dev->xtest_master_id != 0;
}
/**
diff --git a/include/input.h b/include/input.h
index 3b29855f1..c68a28441 100644
--- a/include/input.h
+++ b/include/input.h
@@ -237,7 +237,6 @@ extern int key_is_down(DeviceIntPtr pDev, int key_code, int type);
extern void InitCoreDevices(void);
extern void InitXTestDevices(void);
-extern Bool XTestInitPrivates(void);
extern _X_EXPORT DeviceIntPtr AddInputDevice(
ClientPtr /*client*/,
diff --git a/include/inputstr.h b/include/inputstr.h
index a83e863be..1b504e939 100644
--- a/include/inputstr.h
+++ b/include/inputstr.h
@@ -554,6 +554,9 @@ typedef struct _DeviceIntRec {
/* coordinate transformation matrix for absolute input devices */
struct pixman_f_transform transform;
+
+ /* XTest related master device id */
+ int xtest_master_id;
} DeviceIntRec;
typedef struct {
diff --git a/test/xi2/protocol-common.c b/test/xi2/protocol-common.c
index ad18042f9..50f2b8698 100644
--- a/test/xi2/protocol-common.c
+++ b/test/xi2/protocol-common.c
@@ -157,7 +157,6 @@ void init_simple(void)
dixResetPrivates();
InitAtoms();
XkbInitPrivates();
- XTestInitPrivates();
dixRegisterPrivateKey(&XIClientPrivateKeyRec, PRIVATE_CLIENT, sizeof(XIClientRec));
dixRegisterPrivateKey(&miPointerScreenKeyRec, PRIVATE_SCREEN, 0);
dixRegisterPrivateKey(&miPointerPrivKeyRec, PRIVATE_DEVICE, 0);
diff --git a/test/xtest.c b/test/xtest.c
index af75f0c90..6ea6862f7 100644
--- a/test/xtest.c
+++ b/test/xtest.c
@@ -61,7 +61,6 @@ static void xtest_init_devices(void)
InitAtoms();
XkbInitPrivates();
- XTestInitPrivates();
/* this also inits the xtest devices */
InitCoreDevices();