diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2016-06-02 10:05:02 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2016-06-02 10:05:02 +1000 |
commit | 248c5936a0151d0766a95457330c7d3ef9335b94 (patch) | |
tree | a91cc2beba3b4965c1b43439903f9f9dc3e80567 | |
parent | 59e5db025307404fbfbc82f2fb3fe91d6a3005d7 (diff) |
Support XINPUT ABI version 23
Use input_lock/input_unlock calls instead of SIGIO functions
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r-- | src/synaptics.c | 12 | ||||
-rw-r--r-- | src/synapticsstr.h | 4 |
2 files changed, 13 insertions, 3 deletions
diff --git a/src/synaptics.c b/src/synaptics.c index 70b7f3b..bdc9605 100644 --- a/src/synaptics.c +++ b/src/synaptics.c @@ -1601,9 +1601,11 @@ timerFunc(OsTimerPtr timer, CARD32 now, pointer arg) SynapticsPrivate *priv = (SynapticsPrivate *) (pInfo->private); struct SynapticsHwState *hw = priv->local_hw_state; int delay; - int sigstate; - - sigstate = xf86BlockSIGIO(); +#if !HAVE_THREADED_INPUT + int sigstate = xf86BlockSIGIO(); +#else + input_lock(); +#endif priv->hwState->millis += now - priv->timer_time; SynapticsCopyHwState(hw, priv->hwState); @@ -1613,7 +1615,11 @@ timerFunc(OsTimerPtr timer, CARD32 now, pointer arg) priv->timer_time = now; priv->timer = TimerSet(priv->timer, 0, delay, timerFunc, pInfo); +#if !HAVE_THREADED_INPUT xf86UnblockSIGIO(sigstate); +#else + input_unlock(); +#endif return 0; } diff --git a/src/synapticsstr.h b/src/synapticsstr.h index f8ab14e..905b78b 100644 --- a/src/synapticsstr.h +++ b/src/synapticsstr.h @@ -36,6 +36,10 @@ #define NO_DRIVER_SCALING 1 #endif +#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 23 +#define HAVE_THREADED_INPUT 1 +#endif + #ifdef DBG #undef DBG #endif |