[PATCH:xf86-input-mouse 4/4] For wsmouse, keep 3-button emulation status.
Alan Coopersmith
alan.coopersmith at oracle.com
Tue Mar 25 17:32:17 PDT 2014
On 08/19/13 02:14 AM, Thomas Klausner wrote:
> 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.
>
> From Martin Husemann <martin at NetBSD.org>
> Signed-off-by: Thomas Klausner <wiz at NetBSD.org>
> ---
> src/mouse.c | 11 +++++++++++
> 1 file changed, 11 insertions(+)
>
> diff --git a/src/mouse.c b/src/mouse.c
> index 4797160..89cccdd 100644
> --- a/src/mouse.c
> +++ b/src/mouse.c
> @@ -2057,6 +2057,17 @@ 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;
> +#endif
> +
> LogMessageVerbSigSafe(X_INFO, 4, "mouse: 3rd Button detected: disabling emulate3Button\n");
>
> Emulate3ButtonsSetEnabled(pInfo, FALSE);
>
Won't that cause compiler warnings about unreachable code? Perhaps the rest
of the function should be wrapped in #else ... #endif.
(In fact you could probably put the whole function body in the #else...#endif
clause, but then you'd have to add an attribute to tell the compiler it's
expected that the pInfo argument is unused.)
--
-Alan Coopersmith- alan.coopersmith at oracle.com
Oracle Solaris Engineering - http://blogs.oracle.com/alanc
More information about the xorg-devel
mailing list