summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2016-05-30 22:45:12 -0700
committerPeter Hutterer <peter.hutterer@who-t.net>2016-06-01 10:24:59 +1000
commit80952e5a5fcb4158249451f2339de618c4e63b82 (patch)
tree1d6e7dd2c376824706bfa5db85e62501b749ea10
parentc22d3073dc1b82fe6c466e5ea71b6da755bb9a8e (diff)
Support ABI_XINPUT_VERSION 23 (use input_lock/input_unlock)
This makes using input_lock/input_unlock conditional on the ABI version so that we don't get compiler warnings when compiling with the newer server bits. Signed-off-by: Keith Packard <keithp@keithp.com> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r--src/mouse.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/mouse.c b/src/mouse.c
index f9f874b..d5f918e 100644
--- a/src/mouse.c
+++ b/src/mouse.c
@@ -129,6 +129,10 @@ typedef struct _DragLockRec {
} DragLockRec, *DragLockPtr;
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 23
+#define HAVE_THREADED_INPUT 1
+#endif
+
#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12
static InputInfoPtr MousePreInit(InputDriverPtr drv, IDevPtr dev, int flags);
#else
@@ -2025,12 +2029,18 @@ static CARD32
buttonTimer(InputInfoPtr pInfo)
{
MouseDevPtr pMse;
+#if !HAVE_THREADED_INPUT
int sigstate;
+#endif
int id;
pMse = pInfo->private;
+#if HAVE_THREADED_INPUT
+ input_lock();
+#else
sigstate = xf86BlockSIGIO ();
+#endif
pMse->emulate3Pending = FALSE;
if ((id = stateTab[pMse->emulateState][4][0]) != 0) {
@@ -2041,7 +2051,11 @@ buttonTimer(InputInfoPtr pInfo)
"Got unexpected buttonTimer in state %d\n", pMse->emulateState);
}
+#if HAVE_THREADED_INPUT
+ input_unlock();
+#else
xf86UnblockSIGIO (sigstate);
+#endif
return 0;
}
@@ -3276,14 +3290,20 @@ createProtoList(MouseDevPtr pMse, MouseProtocolID *protoList)
unsigned char *para;
mousePrivPtr mPriv = (mousePrivPtr)pMse->mousePriv;
MouseProtocolID *tmplist = NULL;
+#if !HAVE_THREADED_INPUT
int blocked;
+#endif
AP_DBGC(("Autoprobe: "));
for (i = 0; i < mPriv->count; i++)
AP_DBGC(("%2.2x ", (unsigned char) mPriv->data[i]));
AP_DBGC(("\n"));
+#if HAVE_THREADED_INPUT
+ input_lock();
+#else
blocked = xf86BlockSIGIO ();
+#endif
/* create a private copy first so we can write in the old list */
if ((tmplist = malloc(sizeof(MouseProtocolID) * NUM_AUTOPROBE_PROTOS))){
@@ -3392,7 +3412,11 @@ createProtoList(MouseDevPtr pMse, MouseProtocolID *protoList)
}
}
+#if HAVE_THREADED_INPUT
+ input_unlock();
+#else
xf86UnblockSIGIO(blocked);
+#endif
mPriv->protoList[k] = PROT_UNKNOWN;