[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