ChangeLog | 132 +++++++++++++++++++++++++++++++++++ configure.ac | 6 + debian/changelog | 13 +++ debian/control | 8 +- debian/patches/bsd-array-bounds.diff | 28 ------- debian/patches/series | 2 debian/upstream/signing-key.asc | 60 +++++++++++++++ debian/watch | 1 src/bsd_mouse.c | 26 +++++- src/mouse.c | 122 +++++++++++++++++++++++--------- src/sun_mouse.c | 42 ++++++++--- 11 files changed, 361 insertions(+), 79 deletions(-)
New commits: commit bbf5f488c755019a098320249cf9c7e2fff6f65c Author: Julien Cristau <[email protected]> Date: Sun Oct 26 18:40:42 2014 +0100 Upload to unstable diff --git a/debian/changelog b/debian/changelog index 4ca3bbe..0a357a4 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -xserver-xorg-input-mouse (1:1.9.1-1) UNRELEASED; urgency=medium +xserver-xorg-input-mouse (1:1.9.1-1) unstable; urgency=medium [ Julien Cristau ] * New upstream release. @@ -9,7 +9,7 @@ xserver-xorg-input-mouse (1:1.9.1-1) UNRELEASED; urgency=medium * Describe relationship to xserver-xorg-input-evdev in the long description (closes: #645432). - -- Julien Cristau <[email protected]> Sun, 26 Oct 2014 18:04:38 +0100 + -- Julien Cristau <[email protected]> Sun, 26 Oct 2014 18:35:08 +0100 xserver-xorg-input-mouse (1:1.9.0-1) unstable; urgency=low commit da6863c15a4db1fb3c8a557591f3fc09dca4238d Author: Julien Cristau <[email protected]> Date: Sun Oct 26 18:23:44 2014 +0100 Drop bsd-array-bounds patch, #668949 is fixed in gcc 4.7+. diff --git a/debian/changelog b/debian/changelog index b721a04..4ca3bbe 100644 --- a/debian/changelog +++ b/debian/changelog @@ -3,6 +3,7 @@ xserver-xorg-input-mouse (1:1.9.1-1) UNRELEASED; urgency=medium [ Julien Cristau ] * New upstream release. * Allow uscan to verify tarball signatures. + * Drop bsd-array-bounds patch, #668949 is fixed in gcc 4.7+. [ Jonathan Nieder ] * Describe relationship to xserver-xorg-input-evdev in the long description diff --git a/debian/patches/bsd-array-bounds.diff b/debian/patches/bsd-array-bounds.diff deleted file mode 100644 index bf56b2d..0000000 --- a/debian/patches/bsd-array-bounds.diff +++ /dev/null @@ -1,28 +0,0 @@ -From: Robert Millan <[email protected]> -Subject: Work around gcc bug resulting in build failure - -../../src/bsd_mouse.c: In function 'CheckProtocol': -../../src/bsd_mouse.c:142:30: error: array subscript is above array bounds [-Werror=array-bounds] - -Debian bug#665390. - -Followup-From: Petr Salinger <[email protected]> -Followup-Bug: #681506 - -Index: xserver-xorg-input-mouse/src/bsd_mouse.c -=================================================================== ---- xserver-xorg-input-mouse.orig/src/bsd_mouse.c -+++ xserver-xorg-input-mouse/src/bsd_mouse.c -@@ -139,10 +139,10 @@ CheckProtocol(const char *protocol) - { - int i; - -- for (i = 0; internalNames[i]; i++) -+ for (i = -1; internalNames[++i];) - if (xf86NameCmp(protocol, internalNames[i]) == 0) - return TRUE; -- for (i = 0; miscNames[i]; i++) -+ for (i = -1; miscNames[++i];) - if (xf86NameCmp(protocol, miscNames[i]) == 0) - return TRUE; - return FALSE; diff --git a/debian/patches/series b/debian/patches/series index 9f8f801..fdffa2a 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1 +1 @@ -bsd-array-bounds.diff +# placeholder commit 35bc7af90396d024e8b31944ec9c989df496ca1e Author: Julien Cristau <[email protected]> Date: Sun Oct 26 18:09:20 2014 +0100 Describe relationship to xserver-xorg-input-evdev in the long description. diff --git a/debian/changelog b/debian/changelog index 28b629c..b721a04 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,8 +1,13 @@ xserver-xorg-input-mouse (1:1.9.1-1) UNRELEASED; urgency=medium + [ Julien Cristau ] * New upstream release. * Allow uscan to verify tarball signatures. + [ Jonathan Nieder ] + * Describe relationship to xserver-xorg-input-evdev in the long description + (closes: #645432). + -- Julien Cristau <[email protected]> Sun, 26 Oct 2014 18:04:38 +0100 xserver-xorg-input-mouse (1:1.9.0-1) unstable; urgency=low diff --git a/debian/control b/debian/control index 9d12366..0cdaaad 100644 --- a/debian/control +++ b/debian/control @@ -26,7 +26,13 @@ Depends: Provides: ${xinpdriver:Provides} Description: X.Org X server -- mouse input driver - This package provides the driver for mouse input devices. + This package provides the driver for mouse input devices. It is mainly used + on non-Linux operating systems such as BSD and Solaris. Most + configurations on Linux will use evdev, the kernel's event delivery + mechanism, and do not need this package. + . + See the inputattach package if your mouse is not automatically + detected by the Linux kernel, for example because it is a serial mouse. . More information about X.Org can be found at: <URL:http://www.X.org> commit 9e4160f1094faa7b15062a04aeb4563ca8838a88 Author: Julien Cristau <[email protected]> Date: Sun Oct 26 18:04:51 2014 +0100 Bump changelogs diff --git a/ChangeLog b/ChangeLog index 6ea53e7..ac3fd50 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,135 @@ +commit 6886084b192e681739fc55892f30681efb4f79f0 +Author: Alan Coopersmith <[email protected]> +Date: Mon Aug 11 23:36:23 2014 -0700 + + xf86-input-mouse 1.9.1 + + Signed-off-by: Alan Coopersmith <[email protected]> + +commit 252b15a2aeab5d7c843271caf4852df03d7a25eb +Author: Alan Coopersmith <[email protected]> +Date: Fri Jul 11 19:47:20 2014 -0700 + + Update some outdated language in a comment on obsolete hardware + + Signed-off-by: Alan Coopersmith <[email protected]> + +commit e83991474e9964917ea6ece5ad21d1bf56481dfa +Author: Michael Thayer <[email protected]> +Date: Thu Apr 24 10:32:17 2014 +0200 + + Make absolute input reporting in Solaris aware of resolution changes + + Currently on Solaris absolute input reporting only takes resolution changes + into account when the video driver is using the pre-RandR 1.2 APIs, and + there it uses the physical resolution, not the virtual. This patch fixes + those two things. + + Signed-off-by: Michael Thayer <[email protected]> + Signed-off-by: Alan Coopersmith <[email protected]> + +commit 7a1fb986cc5ace474b6f040179bd130d4ba6f78f +Author: Michael Thayer <[email protected]> +Date: Mon Mar 31 11:21:12 2014 +0200 + + Do not drop the result of protocol detection + + In MousePickProtocol() with protocol PROT_AUTO we probe for the protocol to + use but drop the result in most cases. This was causing DEVICE_INIT and + DEVICE_ON to fail to be called with the VUID protocol. Git history suggests + that this code was originally meant to cover both PS/2 auto-detection and OS- + specific detection, but that only the first case was implemented at the time. + Now that only the second is needed dropping the result to keep the protocol + as PROT_AUTO is presumably no longer useful and seems to actively breaking + things. + + Signed-off-by: Michael Thayer <[email protected]> + Reviewed-by: Alan Coopersmith <[email protected]> + Signed-off-by: Alan Coopersmith <[email protected]> + +commit 4e79eb64e50bf19d984a27af1dedaa78c1e77072 +Author: Thomas Klausner <[email protected]> +Date: Mon Aug 19 19:30:37 2013 +0200 + + Add support for absolute positioning (tablets). + + From Pierre Pronchery <[email protected]> + and review comments by Daniel Stone <[email protected]>. + + Reviewed-by: Daniel Stone <[email protected]> + Signed-off-by: Thomas Klausner <[email protected]> + +commit b77a728904d5492163728762d4f363554edefba5 +Author: Thomas Klausner <[email protected]> +Date: Mon Aug 19 11:14:33 2013 +0200 + + For wsmouse, keep 3-button emulation status. + + With a multiplexed device like wsmouse it does not make sense to + kill emulate3buttons on the first button-3-pressed event. The + button-3 pressed may belong to a mouse long gone and leave the + internal (two button only) mousepad useless. + + Reviewed-by: Alan Coopersmith <[email protected]> + From Martin Husemann <[email protected]> + Signed-off-by: Thomas Klausner <[email protected]> + +commit ae1a3d6072fea65a8a594f2614f47c43dd8dd267 +Author: Thomas Klausner <[email protected]> +Date: Mon Aug 19 11:14:32 2013 +0200 + + Make wsmouse (re-)init the version. + + This makes sure that the xserver and the mouse speak the same + protocol version. + + Acked-by: Alan Coopersmith <[email protected]> + From Matthew R. Green <[email protected]> + Signed-off-by: Thomas Klausner <[email protected]> + +commit e2cb94b0f3f555f4b1744d63caa587c804f942a2 +Author: Thomas Klausner <[email protected]> +Date: Mon Aug 19 11:14:30 2013 +0200 + + Enable MSE_MISC on NetBSD as well. + + Otherwise we can't find WSMouse. + + Reviewed-by: Alan Coopersmith <[email protected]> + From Matthew R. Green <[email protected]> + Signed-off-by: Thomas Klausner <[email protected]> + +commit ea504b225f7cbedced9466bbf09ebfa43f39dcfb +Author: Patrik Jakobsson <[email protected]> +Date: Sun Jan 5 18:57:28 2014 +0100 + + Add AC_SYSTEM_EXTENSIONS to expose asprintf with GNU libc + + As required by the following commit: + commit 8c75f6e1c117f3d05f0bc7bed34f0e7e933f3b9a + Use asprintf (or Xprintf on old servers) instead of strdup+sprintf + + Signed-off-by: Patrik Jakobsson <[email protected]> + Reviewed-by: Alan Coopersmith <[email protected]> + Signed-off-by: Alan Coopersmith <[email protected]> + +commit 8c75f6e1c117f3d05f0bc7bed34f0e7e933f3b9a +Author: Alan Coopersmith <[email protected]> +Date: Sat Oct 19 21:49:57 2013 -0700 + + Use asprintf (or Xprintf on old servers) instead of strdup+sprintf + + Signed-off-by: Alan Coopersmith <[email protected]> + Reviewed-by: Peter Hutterer <[email protected]> + +commit d5de178fe9c20351ff400ff616ffbfe05471cdcc +Author: Alan Coopersmith <[email protected]> +Date: Sat Oct 19 18:40:10 2013 -0700 + + Wrap some overly long lines + + Signed-off-by: Alan Coopersmith <[email protected]> + commit 35cae8f4352002c8dce85dbc86cebb50e915a478 Author: Peter Hutterer <[email protected]> Date: Wed Mar 27 10:59:05 2013 +1000 diff --git a/debian/changelog b/debian/changelog index a712698..28b629c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,8 +1,9 @@ -xserver-xorg-input-mouse (1:1.9.0-2) UNRELEASED; urgency=medium +xserver-xorg-input-mouse (1:1.9.1-1) UNRELEASED; urgency=medium + * New upstream release. * Allow uscan to verify tarball signatures. - -- Julien Cristau <[email protected]> Sun, 26 Oct 2014 17:59:13 +0100 + -- Julien Cristau <[email protected]> Sun, 26 Oct 2014 18:04:38 +0100 xserver-xorg-input-mouse (1:1.9.0-1) unstable; urgency=low commit 7571ad713e7a729dcdbfd78493e9c8a35d3497a6 Author: Julien Cristau <[email protected]> Date: Sun Oct 26 17:59:29 2014 +0100 Allow uscan to verify tarball signatures. diff --git a/debian/changelog b/debian/changelog index 89e7699..a712698 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +xserver-xorg-input-mouse (1:1.9.0-2) UNRELEASED; urgency=medium + + * Allow uscan to verify tarball signatures. + + -- Julien Cristau <[email protected]> Sun, 26 Oct 2014 17:59:13 +0100 + xserver-xorg-input-mouse (1:1.9.0-1) unstable; urgency=low [ Michele Cane ] diff --git a/debian/upstream/signing-key.asc b/debian/upstream/signing-key.asc new file mode 100644 index 0000000..863981f --- /dev/null +++ b/debian/upstream/signing-key.asc @@ -0,0 +1,60 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1 + +mQGiBEab+moRBACDH5yKqS3wcc5bdxY7PBNuwKvF5TKMfagmSvuRDtZjjIIWaA/n +Z1KboV9Gq5g7kP7+Kfu+Qgd8u65eVsWwmPW10fXvj3aCU53glx2EdGdrHcgiyH2g +EQfPiyBw+trIppWFRV0IDXSLMA1FNC92t2nSG/VFHaPTVwcgkIRSfcXDvwCglGdE +a6f4uLqoNHP+m4yYnzapFuMD/R4+2AJDAvEWKDdYCGZzlawjAmmWyXrmT7/C/mx9 +8qUR473l4buXjHgDkkXXlHqdzil1vK85PhrKzNJDCCmlHUJNz+QwiAMOLwpD+kwV +Pb57RG7y+a5JQ5+jtVw4RlUxZIk/wj2An9YBO3A5vR7PdjM32ZJCN2+aM4dYfNzQ +xQKTA/47icvBaBVTl9rztjg2pd2Aqpc1P/GsIYLGj7XjnnJvGAENBHSH1QjpZMJG +CTS9oJ+B0/wrIr+pA+MdFgYAb6ojMQJOO6UChjWWSGjMFcs/CeXhxlLBido3DtAE +TbNTwO6OEfAvdosvTdhJFnwvZlJ+zZGGy5CrF2Fd9PUe9tmASbQoQWxhbiBDb29w +ZXJzbWl0aCA8YWxhbmNAZnJlZWRlc2t0b3Aub3JnPohoBBMRAgAoAhsDBgsJCAcD +AgYVCAIJCgsEFgIDAQIeAQIXgAUCUXnRYgUJFEPYeAAKCRCi+54IHy0TDonxAKCP +cAgXNojuujUg5Wqi6v0RBFVSUgCggq1SsVEdq9NDWvXvkeGyNaBivSK0K0FsYW4g +Q29vcGVyc21pdGggPGFsYW4uY29vcGVyc21pdGhAc3VuLmNvbT6IZgQTEQIAJgIb +AwYLCQgHAwIEFQIIAwQWAgMBAh4BAheABQJRedFiBQkUQ9h4AAoJEKL7nggfLRMO +6sUAn0jl3h9rY4OJ13Lu7nsKclyhDpOqAKCFgTmaDGRuDRxloLg9jftrn7a7vrQu +QWxhbiBDb29wZXJzbWl0aCA8YWxhbi5jb29wZXJzbWl0aEBvcmFjbGUuY29tPohr +BBMRAgArAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAIZAQUCUXnRYgUJFEPY +eAAKCRCi+54IHy0TDtBZAJ9IgVVNoFIPRjTsNjcSFaLznuDRJgCcC/WgV312IrxS +Q8PRAyEgozSB9Ke5Ag0ERpv6bxAIAJp5aUlho5rUhpS6ik7spsAQFPRuycPKMNu0 +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 +=tc6G +-----END PGP PUBLIC KEY BLOCK----- diff --git a/debian/watch b/debian/watch index 00fd5d7..e5867b2 100644 --- a/debian/watch +++ b/debian/watch @@ -1,3 +1,4 @@ #git=git://anongit.freedesktop.org/xorg/driver/xf86-input-mouse version=3 +opts=pgpsigurlmangle=s/$/.sig/ \ http://xorg.freedesktop.org/releases/individual/driver/ xf86-input-mouse-(.*)\.tar\.gz commit 6886084b192e681739fc55892f30681efb4f79f0 Author: Alan Coopersmith <[email protected]> Date: Mon Aug 11 23:36:23 2014 -0700 xf86-input-mouse 1.9.1 Signed-off-by: Alan Coopersmith <[email protected]> diff --git a/configure.ac b/configure.ac index 6c40988..15d9047 100644 --- a/configure.ac +++ b/configure.ac @@ -23,7 +23,7 @@ # Initialize Autoconf AC_PREREQ([2.60]) AC_INIT([xf86-input-mouse], - [1.9.0], + [1.9.1], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [xf86-input-mouse]) AC_CONFIG_SRCDIR([Makefile.am]) commit 252b15a2aeab5d7c843271caf4852df03d7a25eb Author: Alan Coopersmith <[email protected]> Date: Fri Jul 11 19:47:20 2014 -0700 Update some outdated language in a comment on obsolete hardware Signed-off-by: Alan Coopersmith <[email protected]> diff --git a/src/mouse.c b/src/mouse.c index 9cb8da6..f9f874b 100644 --- a/src/mouse.c +++ b/src/mouse.c @@ -2660,7 +2660,7 @@ SetupMouse(InputInfoPtr pInfo) ** ** NOTE: There are different versions of both MouseMan and TrackMan! ** Hence I add another protocol PROT_LOGIMAN, which the user can -** specify as MouseMan in his XF86Config file. This entry was +** specify as MouseMan in an xorg.conf file. This entry was ** formerly handled as a special case of PROT_MS. However, people ** who don't have the middle button problem, can still specify ** Microsoft and use PROT_MS. commit e83991474e9964917ea6ece5ad21d1bf56481dfa Author: Michael Thayer <[email protected]> Date: Thu Apr 24 10:32:17 2014 +0200 Make absolute input reporting in Solaris aware of resolution changes Currently on Solaris absolute input reporting only takes resolution changes into account when the video driver is using the pre-RandR 1.2 APIs, and there it uses the physical resolution, not the virtual. This patch fixes those two things. Signed-off-by: Michael Thayer <[email protected]> Signed-off-by: Alan Coopersmith <[email protected]> diff --git a/src/sun_mouse.c b/src/sun_mouse.c index 16434e6..b092374 100644 --- a/src/sun_mouse.c +++ b/src/sun_mouse.c @@ -57,6 +57,7 @@ #include "mouse.h" #include "xisb.h" #include "mipointer.h" +#include "xf86Crtc.h" #include <sys/stropts.h> #include <sys/vuid_event.h> #include <sys/msio.h> @@ -405,14 +406,11 @@ static void vuidMouseSendScreenSize(ScreenPtr pScreen, VuidMsePtr pVuidMse) ScrnInfoPtr pScr = XF86SCRNINFO(pScreen); int result; - if (!pScr->currentMode) - return; - - if ((pVuidMse->absres.width != pScr->currentMode->HDisplay) || - (pVuidMse->absres.height != pScr->currentMode->VDisplay)) + if ((pVuidMse->absres.width != pScr->virtualX) || + (pVuidMse->absres.height != pScr->virtualY)) { - pVuidMse->absres.width = pScr->currentMode->HDisplay; - pVuidMse->absres.height = pScr->currentMode->VDisplay; + pVuidMse->absres.width = pScr->virtualX; + pVuidMse->absres.height = pScr->virtualY; do { result = ioctl(pInfo->fd, MSIOSRESOLUTION, &(pVuidMse->absres)); @@ -457,6 +455,24 @@ static void vuidMouseAdjustFrame(ADJUST_FRAME_ARGS_DECL) } } } + +static void vuidMouseCrtcNotify(ScreenPtr pScreen) +{ + xf86_crtc_notify_proc_ptr wrappedCrtcNotify + = (xf86_crtc_notify_proc_ptr) vuidMouseGetScreenPrivate(pScreen); + VuidMsePtr m; + ScreenPtr ptrCurScreen; + + if (wrappedCrtcNotify) + wrappedCrtcNotify(pScreen); + + for (m = vuidMouseList; m != NULL ; m = m->next) { + ptrCurScreen = miPointerGetScreen(m->pInfo->dev); + if (ptrCurScreen == pScreen) { + vuidMouseSendScreenSize(pScreen, m); + } + } +} #endif /* HAVE_ABSOLUTE_MOUSE_SCALING */ @@ -492,8 +508,16 @@ vuidMouseProc(DeviceIntPtr pPointer, int what) for (i = 0; i < screenInfo.numScreens; i++) { ScreenPtr pScreen = screenInfo.screens[i]; ScrnInfoPtr pScrn = XF86SCRNINFO(pScreen); - vuidMouseSetScreenPrivate(pScreen, pScrn->AdjustFrame); - pScrn->AdjustFrame = vuidMouseAdjustFrame; + if (xf86CrtcConfigPrivateIndex != -1) { + xf86_crtc_notify_proc_ptr pCrtcNotify + = xf86_wrap_crtc_notify(pScreen, + vuidMouseCrtcNotify); + vuidMouseSetScreenPrivate(pScreen, pCrtcNotify); + } else { + vuidMouseSetScreenPrivate(pScreen, + pScrn->AdjustFrame); + pScrn->AdjustFrame = vuidMouseAdjustFrame; + } } vuidMouseGeneration = serverGeneration; } commit 7a1fb986cc5ace474b6f040179bd130d4ba6f78f Author: Michael Thayer <[email protected]> Date: Mon Mar 31 11:21:12 2014 +0200 Do not drop the result of protocol detection In MousePickProtocol() with protocol PROT_AUTO we probe for the protocol to use but drop the result in most cases. This was causing DEVICE_INIT and DEVICE_ON to fail to be called with the VUID protocol. Git history suggests that this code was originally meant to cover both PS/2 auto-detection and OS- specific detection, but that only the first case was implemented at the time. Now that only the second is needed dropping the result to keep the protocol as PROT_AUTO is presumably no longer useful and seems to actively breaking things. Signed-off-by: Michael Thayer <[email protected]> Reviewed-by: Alan Coopersmith <[email protected]> Signed-off-by: Alan Coopersmith <[email protected]> diff --git a/src/mouse.c b/src/mouse.c index 139e1cd..9cb8da6 100644 --- a/src/mouse.c +++ b/src/mouse.c @@ -849,11 +849,8 @@ MousePickProtocol(InputInfoPtr pInfo, const char* device, { const char *osProt; if (osInfo->SetupAuto && (osProt = osInfo->SetupAuto(pInfo,NULL))) { - MouseProtocolID id = ProtocolNameToID(osProt); - if (id == PROT_UNKNOWN || id == PROT_UNSUP) { - protocolID = id; - protocol = osProt; - } + protocolID = ProtocolNameToID(osProt); + protocol = osProt; } } commit 4e79eb64e50bf19d984a27af1dedaa78c1e77072 Author: Thomas Klausner <[email protected]> Date: Mon Aug 19 19:30:37 2013 +0200 Add support for absolute positioning (tablets). From Pierre Pronchery <[email protected]> and review comments by Daniel Stone <[email protected]>. Reviewed-by: Daniel Stone <[email protected]> Signed-off-by: Thomas Klausner <[email protected]> diff --git a/src/bsd_mouse.c b/src/bsd_mouse.c index 98e5ff3..a2c8ec7 100644 --- a/src/bsd_mouse.c +++ b/src/bsd_mouse.c @@ -407,7 +407,7 @@ wsconsReadInput(InputInfoPtr pInfo) n /= sizeof(struct wscons_event); while( n-- ) { int buttons = pMse->lastButtons; - int dx = 0, dy = 0, dz = 0, dw = 0; + int dx = 0, dy = 0, dz = 0, dw = 0, x, y; switch (event->type) { case WSCONS_EVENT_MOUSE_UP: #define BUTBIT (1 << (event->value <= 2 ? 2 - event->value : event->value)) @@ -432,6 +432,26 @@ wsconsReadInput(InputInfoPtr pInfo) dw = event->value; break; #endif + case WSCONS_EVENT_MOUSE_ABSOLUTE_X: + x = event->value; + xf86PostMotionEvent(pInfo->dev, TRUE, 0, 1, x); + ++event; + continue; + case WSCONS_EVENT_MOUSE_ABSOLUTE_Y: + y = event->value; + xf86PostMotionEvent(pInfo->dev, TRUE, 1, 1, y); + ++event; + continue; +#ifdef WSCONS_EVENT_MOUSE_ABSOLUTE_Z + case WSCONS_EVENT_MOUSE_ABSOLUTE_Z: + ++event; + continue; +#endif +#ifdef WSCONS_EVENT_MOUSE_ABSOLUTE_W + case WSCONS_EVENT_MOUSE_ABSOLUTE_W: + ++event; + continue; +#endif default: LogMessageVerbSigSafe(X_WARNING, -1, "%s: bad wsmouse event type=%d\n", pInfo->name, commit b77a728904d5492163728762d4f363554edefba5 Author: Thomas Klausner <[email protected]> Date: Mon Aug 19 11:14:33 2013 +0200 For wsmouse, keep 3-button emulation status. With a multiplexed device like wsmouse it does not make sense to kill emulate3buttons on the first button-3-pressed event. The button-3 pressed may belong to a mouse long gone and leave the internal (two button only) mousepad useless. Reviewed-by: Alan Coopersmith <[email protected]> From Martin Husemann <[email protected]> Signed-off-by: Thomas Klausner <[email protected]> diff --git a/src/mouse.c b/src/mouse.c index 0c7fc63..139e1cd 100644 --- a/src/mouse.c +++ b/src/mouse.c @@ -2082,12 +2082,23 @@ Emulate3ButtonsSoft(InputInfoPtr pInfo) if (!pMse->emulate3ButtonsSoft) return TRUE; +#if defined(__NetBSD__) && defined(WSCONS_SUPPORT) + /* + * On NetBSD a wsmouse is a multiplexed device. Imagine a notebook + * with two-button mousepad, and an external USB mouse plugged in + * temporarily. After using button 3 on the external mouse and + * unplugging it again, the mousepad will still need to emulate + * 3 buttons. + */ + return TRUE; +#else LogMessageVerbSigSafe(X_INFO, 4, "mouse: 3rd Button detected: disabling emulate3Button\n"); Emulate3ButtonsSetEnabled(pInfo, FALSE); return FALSE; +#endif } static void MouseBlockHandler(pointer data, commit ae1a3d6072fea65a8a594f2614f47c43dd8dd267 Author: Thomas Klausner <[email protected]> Date: Mon Aug 19 11:14:32 2013 +0200 Make wsmouse (re-)init the version. This makes sure that the xserver and the mouse speak the same protocol version. Acked-by: Alan Coopersmith <[email protected]> From Matthew R. Green <[email protected]> Signed-off-by: Thomas Klausner <[email protected]> diff --git a/src/mouse.c b/src/mouse.c index 2da2b4d..0c7fc63 100644 --- a/src/mouse.c +++ b/src/mouse.c @@ -67,6 +67,12 @@ #include "xserver-properties.h" #include "xf86-mouse-properties.h" +#ifdef __NetBSD__ +#include <time.h> +#include <dev/wscons/wsconsio.h> +#include <sys/ioctl.h> +#endif + #include "compiler.h" #include "xisb.h" @@ -1757,6 +1763,11 @@ MouseProc(DeviceIntPtr device, int what) if (pInfo->fd == -1) xf86Msg(X_WARNING, "%s: cannot open input device\n", pInfo->name); else { +#if defined(__NetBSD__) && defined(WSCONS_SUPPORT) && defined(WSMOUSEIO_SETVERSION) + int version = WSMOUSE_EVENT_VERSION; + if (ioctl(pInfo->fd, WSMOUSEIO_SETVERSION, &version) == -1) + xf86Msg(X_WARNING, "%s: cannot set version\n", pInfo->name); +#endif if (pMse->xisbscale) pMse->buffer = XisbNew(pInfo->fd, pMse->xisbscale * 4); else commit e2cb94b0f3f555f4b1744d63caa587c804f942a2 Author: Thomas Klausner <[email protected]> Date: Mon Aug 19 11:14:30 2013 +0200 Enable MSE_MISC on NetBSD as well. Otherwise we can't find WSMouse. Reviewed-by: Alan Coopersmith <[email protected]> From Matthew R. Green <[email protected]> Signed-off-by: Thomas Klausner <[email protected]> diff --git a/src/bsd_mouse.c b/src/bsd_mouse.c index ca4c9d0..98e5ff3 100644 --- a/src/bsd_mouse.c +++ b/src/bsd_mouse.c @@ -97,9 +97,7 @@ static const char *mouseDevs[] = { static int SupportedInterfaces(void) { -#if defined(__NetBSD__) - return MSE_SERIAL | MSE_BUS | MSE_PS2 | MSE_AUTO; -#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__) +#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__) || defined(__NetBSD__) return MSE_SERIAL | MSE_BUS | MSE_PS2 | MSE_AUTO | MSE_MISC; #else return MSE_SERIAL | MSE_BUS | MSE_PS2 | MSE_XPS2 | MSE_AUTO | MSE_MISC; commit ea504b225f7cbedced9466bbf09ebfa43f39dcfb Author: Patrik Jakobsson <[email protected]> Date: Sun Jan 5 18:57:28 2014 +0100 Add AC_SYSTEM_EXTENSIONS to expose asprintf with GNU libc As required by the following commit: commit 8c75f6e1c117f3d05f0bc7bed34f0e7e933f3b9a Use asprintf (or Xprintf on old servers) instead of strdup+sprintf Signed-off-by: Patrik Jakobsson <[email protected]> Reviewed-by: Alan Coopersmith <[email protected]> Signed-off-by: Alan Coopersmith <[email protected]> diff --git a/configure.ac b/configure.ac index bd782a5..6c40988 100644 --- a/configure.ac +++ b/configure.ac @@ -29,6 +29,7 @@ AC_INIT([xf86-input-mouse], AC_CONFIG_SRCDIR([Makefile.am]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_AUX_DIR(.) +AC_USE_SYSTEM_EXTENSIONS # Initialize Automake AM_INIT_AUTOMAKE([foreign dist-bzip2]) commit 8c75f6e1c117f3d05f0bc7bed34f0e7e933f3b9a Author: Alan Coopersmith <[email protected]> Date: Sat Oct 19 21:49:57 2013 -0700 Use asprintf (or Xprintf on old servers) instead of strdup+sprintf Signed-off-by: Alan Coopersmith <[email protected]> Reviewed-by: Peter Hutterer <[email protected]> diff --git a/configure.ac b/configure.ac index ee6a345..bd782a5 100644 --- a/configure.ac +++ b/configure.ac @@ -44,6 +44,9 @@ XORG_MACROS_VERSION(1.8) XORG_DEFAULT_OPTIONS XORG_WITH_LINT +# Checks for library functions +AC_CHECK_FUNCS([asprintf]) + # Obtain compiler/linker options from server and required extensions PKG_CHECK_MODULES(XORG, [xorg-server >= 1.7] xproto inputproto) diff --git a/src/mouse.c b/src/mouse.c index f60d6c2..2da2b4d 100644 --- a/src/mouse.c +++ b/src/mouse.c @@ -74,6 +74,13 @@ #include "mousePriv.h" #include "mipointer.h" +/* Xorg >= 1.10 provides an asprintf() implementation even if libc doesn't */ +#include "xorgVersion.h" +#if defined(HAVE_ASPRINTF) || \ + (XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(1,10,0,0,0)) +# define USE_ASPRINTF +#endif + enum { /* number of bits in mapped nibble */ NIB_BITS=4, @@ -441,20 +448,27 @@ MouseCommonOptions(InputInfoPtr pInfo) } else if (sscanf(s, "%d %d %d %d", &b1, &b2, &b3, &b4) >= 2 && b1 > 0 && b1 <= MSE_MAXBUTTONS && b2 > 0 && b2 <= MSE_MAXBUTTONS) { - msg = xstrdup("buttons XX and YY"); - if (msg) - sprintf(msg, "buttons %d and %d", b1, b2); pMse->negativeZ = 1 << (b1-1); pMse->positiveZ = 1 << (b2-1); if (b3 > 0 && b3 <= MSE_MAXBUTTONS && b4 > 0 && b4 <= MSE_MAXBUTTONS) { - if (msg) - free(msg); - msg = xstrdup("buttons XX, YY, ZZ and WW"); - if (msg) - sprintf(msg, "buttons %d, %d, %d and %d", b1, b2, b3, b4); pMse->negativeW = 1 << (b3-1); pMse->positiveW = 1 << (b4-1); +#ifdef USE_ASPRINTF + if (asprintf(&msg, "buttons %d, %d, %d and %d", + b1, b2, b3, b4) == -1) + msg = NULL; +#else + msg = Xprintf("buttons %d, %d, %d and %d", b1, b2, b3, b4); +#endif + } + else { +#ifdef USE_ASPRINTF + if (asprintf(&msg, "buttons %d and %d", b1, b2) == -1) + msg = NULL; +#else + msg = Xprintf("buttons %d and %d", b1, b2); +#endif } if (b1 > pMse->buttons) pMse->buttons = b1; if (b2 > pMse->buttons) pMse->buttons = b2; @@ -509,9 +523,12 @@ MouseCommonOptions(InputInfoPtr pInfo) if ((sscanf(s, "%d %d", &b1, &b2) == 2) && b1 > 0 && b1 <= MSE_MAXBUTTONS && b2 > 0 && b2 <= MSE_MAXBUTTONS) { - msg = xstrdup("buttons XX and YY"); - if (msg) - sprintf(msg, "buttons %d and %d", b1, b2); +#ifdef USE_ASPRINTF + if (asprintf(&msg, "buttons %d and %d", b1, b2) == -1) + msg = NULL; +#else + msg = Xprintf("buttons %d and %d", b1, b2); +#endif pMse->negativeX = b1; pMse->positiveX = b2; if (b1 > pMse->buttons) pMse->buttons = b1; @@ -534,9 +551,12 @@ MouseCommonOptions(InputInfoPtr pInfo) if ((sscanf(s, "%d %d", &b1, &b2) == 2) && b1 > 0 && b1 <= MSE_MAXBUTTONS && b2 > 0 && b2 <= MSE_MAXBUTTONS) { - msg = xstrdup("buttons XX and YY"); - if (msg) - sprintf(msg, "buttons %d and %d", b1, b2); +#ifdef USE_ASPRINTF + if (asprintf(&msg, "buttons %d and %d", b1, b2) == -1) + msg = NULL; +#else + msg = Xprintf("buttons %d and %d", b1, b2); +#endif pMse->negativeY = b1; pMse->positiveY = b2; if (b1 > pMse->buttons) pMse->buttons = b1; @@ -606,9 +626,12 @@ MouseCommonOptions(InputInfoPtr pInfo) if ((sscanf(s, "%d %d", &b1, &b2) == 2) && (b1 > 0) && (b1 <= MSE_MAXBUTTONS) && (b2 > 0) && (b2 <= MSE_MAXBUTTONS)) { - msg = xstrdup("buttons XX and YY"); - if (msg) - sprintf(msg, "buttons %d and %d", b1, b2); +#ifdef USE_ASPRINTF + if (asprintf(&msg, "buttons %d and %d", b1, b2) == -1) + msg = NULL; +#else + msg = Xprintf("buttons %d and %d", b1, b2); +#endif pMse->doubleClickTargetButton = b1; pMse->doubleClickTargetButtonMask = 1 << (b1 - 1); pMse->doubleClickSourceButtonMask = 1 << (b2 - 1); commit d5de178fe9c20351ff400ff616ffbfe05471cdcc Author: Alan Coopersmith <[email protected]> Date: Sat Oct 19 18:40:10 2013 -0700 Wrap some overly long lines Signed-off-by: Alan Coopersmith <[email protected]> diff --git a/src/mouse.c b/src/mouse.c index 0487067..f60d6c2 100644 --- a/src/mouse.c +++ b/src/mouse.c @@ -604,7 +604,8 @@ MouseCommonOptions(InputInfoPtr pInfo) char *msg = NULL; if ((sscanf(s, "%d %d", &b1, &b2) == 2) && - (b1 > 0) && (b1 <= MSE_MAXBUTTONS) && (b2 > 0) && (b2 <= MSE_MAXBUTTONS)) { + (b1 > 0) && (b1 <= MSE_MAXBUTTONS) && + (b2 > 0) && (b2 <= MSE_MAXBUTTONS)) { msg = xstrdup("buttons XX and YY"); if (msg) sprintf(msg, "buttons %d and %d", b1, b2); @@ -2005,7 +2006,8 @@ buttonTimer(InputInfoPtr pInfo) xf86PostButtonEvent(pInfo->dev, 0, abs(id), (id >= 0), 0, 0); pMse->emulateState = stateTab[pMse->emulateState][4][2]; } else { - LogMessageVerbSigSafe(X_WARNING, -1, "Got unexpected buttonTimer in state %d\n", pMse->emulateState); + LogMessageVerbSigSafe(X_WARNING, -1, + "Got unexpected buttonTimer in state %d\n", pMse->emulateState); } xf86UnblockSIGIO (sigstate); @@ -2046,7 +2048,8 @@ Emulate3ButtonsSoft(InputInfoPtr pInfo) if (!pMse->emulate3ButtonsSoft) return TRUE; - LogMessageVerbSigSafe(X_INFO, 4, "mouse: 3rd Button detected: disabling emulate3Button\n"); + LogMessageVerbSigSafe(X_INFO, 4, + "mouse: 3rd Button detected: disabling emulate3Button\n"); Emulate3ButtonsSetEnabled(pInfo, FALSE); @@ -2111,8 +2114,8 @@ MouseDoPostEvent(InputInfoPtr pInfo, int buttons, int dx, int dy) if (pMse->doubleClickSourceButtonMask) { if (buttons & pMse->doubleClickSourceButtonMask) { if (!(pMse->doubleClickOldSourceState)) { - /* double-click button has just been pressed. Ignore it if target button - * is already down. + /* double-click button has just been pressed. + * Ignore it if target button is already down. */ if (!(buttons & pMse->doubleClickTargetButtonMask)) { /* Target button isn't down, so send a double-click */ @@ -2154,8 +2157,10 @@ MouseDoPostEvent(InputInfoPtr pInfo, int buttons, int dx, int dy) * If the button is released early enough emit the button * press/release events */ - xf86PostButtonEvent(pInfo->dev, 0, pMse->wheelButton, 1, 0, 0); - xf86PostButtonEvent(pInfo->dev, 0, pMse->wheelButton, 0, 0, 0); + xf86PostButtonEvent(pInfo->dev, 0, pMse->wheelButton, + 1, 0, 0); + xf86PostButtonEvent(pInfo->dev, 0, pMse->wheelButton, + 0, 0, 0); } } } else @@ -2187,8 +2192,10 @@ MouseDoPostEvent(InputInfoPtr pInfo, int buttons, int dx, int dy) */ if (!(emuWheelButtonMask & buttons) || (emuWheelButtonMask & wheelButtonMask)) { - xf86PostButtonEvent(pInfo->dev, 0, emuWheelButton, 1, 0, 0); - xf86PostButtonEvent(pInfo->dev, 0, emuWheelButton, 0, 0, 0); + xf86PostButtonEvent(pInfo->dev, 0, emuWheelButton, + 1, 0, 0); + xf86PostButtonEvent(pInfo->dev, 0, emuWheelButton, + 0, 0, 0); } } } @@ -2215,8 +2222,10 @@ MouseDoPostEvent(InputInfoPtr pInfo, int buttons, int dx, int dy) */ if (!(emuWheelButtonMask & buttons) || (emuWheelButtonMask & wheelButtonMask)) { - xf86PostButtonEvent(pInfo->dev, 0, emuWheelButton, 1, 0, 0); - xf86PostButtonEvent(pInfo->dev, 0, emuWheelButton, 0, 0, 0); + xf86PostButtonEvent(pInfo->dev, 0, emuWheelButton, + 1, 0, 0); + xf86PostButtonEvent(pInfo->dev, 0, emuWheelButton, + 0, 0, 0); } } } @@ -2327,7 +2336,8 @@ MouseDoPostEvent(InputInfoPtr pInfo, int buttons, int dx, int dy) stateTab[pMse->emulateState][emulateButtons][2]; if (stateTab[pMse->emulateState][4][0] != 0) { - pMse->emulate3Expires = GetTimeInMillis () + pMse->emulate3Timeout; + pMse->emulate3Expires = + GetTimeInMillis() + pMse->emulate3Timeout; pMse->emulate3Pending = TRUE; } else { pMse->emulate3Pending = FALSE; -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: https://lists.debian.org/[email protected]

