summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2016-06-02 10:05:02 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2016-06-02 10:05:02 +1000
commit248c5936a0151d0766a95457330c7d3ef9335b94 (patch)
treea91cc2beba3b4965c1b43439903f9f9dc3e80567
parent59e5db025307404fbfbc82f2fb3fe91d6a3005d7 (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.c12
-rw-r--r--src/synapticsstr.h4
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