README | 6 +++--- configure.ac | 2 +- src/mouse.c | 45 ++++++++++++++++++++++++++++++++++++--------- xorg-mouse.pc.in | 4 ++++ 4 files changed, 44 insertions(+), 13 deletions(-)
New commits: commit 9d6c38eae40a435b4057a33d55759810ea7b91c1 Author: Peter Hutterer <[email protected]> Date: Thu Nov 17 14:35:47 2016 +1000 mouse 1.9.2 Signed-off-by: Peter Hutterer <[email protected]> diff --git a/configure.ac b/configure.ac index 15d9047..3d58f7c 100644 --- a/configure.ac +++ b/configure.ac @@ -23,7 +23,7 @@ # Initialize Autoconf AC_PREREQ([2.60]) AC_INIT([xf86-input-mouse], - [1.9.1], + [1.9.2], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [xf86-input-mouse]) AC_CONFIG_SRCDIR([Makefile.am]) commit 2dda9b90b9c632d2f27a7b2f46bc4e4af1e9d82d Author: Keith Packard <[email protected]> Date: Mon May 30 22:45:13 2016 -0700 Support ABI_XINPUT_VERSION 24 (remove LastSelectMask from block/wakeup) The block and wakeup handler API is changing so that the FD_SET type isn't visible outside the OS layer anymore. The mouse driver didn't need that argument anyways, so the change is just to adjust the APIs to avoid compiler warnings. Signed-off-by: Keith Packard <[email protected]> Signed-off-by: Peter Hutterer <[email protected]> diff --git a/src/mouse.c b/src/mouse.c index d5f918e..dae98aa 100644 --- a/src/mouse.c +++ b/src/mouse.c @@ -133,6 +133,14 @@ typedef struct _DragLockRec { #define HAVE_THREADED_INPUT 1 #endif +#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 24 +#define BLOCK_HANDLER_ARGS void *data, void *waitTime +#define WAKEUP_HANDLER_ARGS void *data, int i +#else +#define BLOCK_HANDLER_ARGS pointer data, struct timeval **waitTime, pointer LastSelectMask +#define WAKEUP_HANDLER_ARGS void *data, int i, pointer LastSelectMask +#endif + #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12 static InputInfoPtr MousePreInit(InputDriverPtr drv, IDevPtr dev, int flags); #else @@ -144,9 +152,8 @@ static void MouseCtrl(DeviceIntPtr device, PtrCtrl *ctrl); static void MousePostEvent(InputInfoPtr pInfo, int buttons, int dx, int dy, int dz, int dw); static void MouseReadInput(InputInfoPtr pInfo); -static void MouseBlockHandler(pointer data, struct timeval **waitTime, - pointer LastSelectMask); -static void MouseWakeupHandler(pointer data, int i, pointer LastSelectMask); +static void MouseBlockHandler(BLOCK_HANDLER_ARGS); +static void MouseWakeupHandler(WAKEUP_HANDLER_ARGS); static void FlushButtons(MouseDevPtr pMse); static Bool SetupMouse(InputInfoPtr pInfo); @@ -2112,9 +2119,7 @@ Emulate3ButtonsSoft(InputInfoPtr pInfo) #endif } -static void MouseBlockHandler(pointer data, - struct timeval **waitTime, - pointer LastSelectMask) +static void MouseBlockHandler(BLOCK_HANDLER_ARGS) { InputInfoPtr pInfo = (InputInfoPtr) data; MouseDevPtr pMse = (MouseDevPtr) pInfo->private; @@ -2129,9 +2134,7 @@ static void MouseBlockHandler(pointer data, } } -static void MouseWakeupHandler(pointer data, - int i, - pointer LastSelectMask) +static void MouseWakeupHandler(WAKEUP_HANDLER_ARGS) { InputInfoPtr pInfo = (InputInfoPtr) data; MouseDevPtr pMse = (MouseDevPtr) pInfo->private; commit 80952e5a5fcb4158249451f2339de618c4e63b82 Author: Keith Packard <[email protected]> Date: Mon May 30 22:45:12 2016 -0700 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 <[email protected]> Signed-off-by: Peter Hutterer <[email protected]> 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; commit c22d3073dc1b82fe6c466e5ea71b6da755bb9a8e Author: Thomas Klausner <[email protected]> Date: Mon Jul 27 00:06:06 2015 +0200 Add some standard defines to pkg-config file. Not strictly needed in the xorg build, but helps the NetBSD reachover build, and follows implicit conventions about pkg-config files more closely. See also http://gnats.netbsd.org/48991 Signed-off-by: Thomas Klausner <[email protected]> Reviewed-by: Alan Coopersmith <[email protected]> diff --git a/xorg-mouse.pc.in b/xorg-mouse.pc.in index 2a77e7c..57df596 100644 --- a/xorg-mouse.pc.in +++ b/xorg-mouse.pc.in @@ -1,3 +1,7 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ sdkdir=@sdkdir@ Name: xorg-mouse commit 85ee769d769e87b1e4a21b8c48944238c8ebe5f7 Author: Alan Coopersmith <[email protected]> Date: Sat Feb 28 09:38:38 2015 -0800 README: Drop ancient, no longer supported versions of Solaris Signed-off-by: Alan Coopersmith <[email protected]> Reviewed-by: Peter Hutterer <[email protected]> diff --git a/README b/README index c022705..3c1c175 100644 --- a/README +++ b/README @@ -158,7 +158,7 @@ NetBSD/pc98 Ok ? Ok NA NA NA OpenBSD Ok Ok Ok Ok*1 Ok*1 Ok*1 SCO Ok ? SP*1 SP*1 NA ? - Solaris 2.x Ok NA*1 ?*1 Ok Ok SP*1 + Solaris Ok NA*1 ?*1 Ok Ok SP*1 SVR4 Ok NA*1 SP*1 SP*1 NA ? PANIX Ok ? SP*1 SP*1 NA ? @@ -302,7 +302,7 @@ 3.14. Solaris - Testing has been done with Solaris 2.5.1, 2.6, 7, 8, 9, 10, and 11. + Testing has been done with Solaris 10 and 11. On Solaris 10 1/06 and later versions with "virtual mouse" support, all PS/2 and USB mice connected to the system can be accessed via the commit 9d404d41b6edbee9b96ee8bad705f7e5fdd3e7c1 Author: Alan Coopersmith <[email protected]> Date: Sat Feb 28 09:36:29 2015 -0800 README: Add "or xf86-input-libinput" to -evdev note for Linux Signed-off-by: Alan Coopersmith <[email protected]> Reviewed-by: Peter Hutterer <[email protected]> diff --git a/README b/README index 8daf558..c022705 100644 --- a/README +++ b/README @@ -59,7 +59,7 @@ This document describes mouse support in the xf86-input-mouse driver for the Xorg X server. This driver is mainly used on non-Linux operating systems such as BSD & Solaris, as modern Linux systems use - the xf86-input-evdev driver instead. + the xf86-input-evdev or xf86-input-libinput drivers instead. Mouse configuration has often been mysterious task for novice users. However, once you learn several basics, it is straightforward to write

