diff options
author | Keith Packard <keithp@keithp.com> | 2016-05-30 22:45:12 -0700 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2016-06-01 10:24:59 +1000 |
commit | 80952e5a5fcb4158249451f2339de618c4e63b82 (patch) | |
tree | 1d6e7dd2c376824706bfa5db85e62501b749ea10 | |
parent | c22d3073dc1b82fe6c466e5ea71b6da755bb9a8e (diff) | |
download | xorg-driver-xf86-input-mouse-80952e5a5fcb4158249451f2339de618c4e63b82.tar.gz |
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.c | 24 |
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; |