From b77a728904d5492163728762d4f363554edefba5 Mon Sep 17 00:00:00 2001 From: Thomas Klausner Date: Mon, 19 Aug 2013 11:14:33 +0200 Subject: 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 From Martin Husemann Signed-off-by: Thomas Klausner --- src/mouse.c | 11 +++++++++++ 1 file changed, 11 insertions(+) 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, -- cgit v1.2.1