From owner-freebsd-bugs@FreeBSD.ORG Thu Mar 16 23:21:15 2006 Return-Path: X-Original-To: freebsd-bugs@hub.freebsd.org Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id BAA1A16A401 for ; Thu, 16 Mar 2006 23:21:15 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id E919043D81 for ; Thu, 16 Mar 2006 23:20:46 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.4/8.13.4) with ESMTP id k2GNKb9i016470 for ; Thu, 16 Mar 2006 23:20:37 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.4/8.13.4/Submit) id k2GNKb5o016469; Thu, 16 Mar 2006 23:20:37 GMT (envelope-from gnats) Resent-Date: Thu, 16 Mar 2006 23:20:37 GMT Resent-Message-Id: <200603162320.k2GNKb5o016469@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Krzysztof Jedruczyk Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C58BC16A425 for ; Thu, 16 Mar 2006 15:31:40 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from www.freebsd.org (www.freebsd.org [216.136.204.117]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9287943D53 for ; Thu, 16 Mar 2006 15:31:40 +0000 (GMT) (envelope-from nobody@FreeBSD.org) Received: from www.freebsd.org (localhost [127.0.0.1]) by www.freebsd.org (8.13.1/8.13.1) with ESMTP id k2GFVeQx037552 for ; Thu, 16 Mar 2006 15:31:40 GMT (envelope-from nobody@www.freebsd.org) Received: (from nobody@localhost) by www.freebsd.org (8.13.1/8.13.1/Submit) id k2GFVexq037551; Thu, 16 Mar 2006 15:31:40 GMT (envelope-from nobody) Message-Id: <200603161531.k2GFVexq037551@www.freebsd.org> Date: Thu, 16 Mar 2006 15:31:40 GMT From: Krzysztof Jedruczyk To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-2.3 Cc: Subject: bin/94577: Wrong mouse button mapping in bthidd X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Mar 2006 23:21:15 -0000 >Number: 94577 >Category: bin >Synopsis: Wrong mouse button mapping in bthidd >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Thu Mar 16 23:20:37 GMT 2006 >Closed-Date: >Last-Modified: >Originator: Krzysztof Jedruczyk >Release: 6.1-PRERELEASE >Organization: >Environment: FreeBSD pipboy2000 6.1-PRERELEASE FreeBSD 6.1-PRERELEASE #3: Wed Mar 15 12:59:31 CET 2006 beaker@pipboy2000:/usr/obj/usr/src/sys/PIPBOY i386 >Description: Connecting bluetooth mouse through bthidd daemon gives wrong button mapping: right button is swapped with middle button. Looking at HID Usage Tables and 'xev' output it seems to me HID that hid "usage" value is incorrectly being used as button index. Since ps2 mouse seems to map right button to 3 and middle button to 2, apropriate fixup has to be done (similar fixup seems to be done in ums.c). Following patch makes all 5 butons work in my setup (including mouse wheel buttons). >How-To-Repeat: Just configure bthid mouse and try to invoke right-click action in some graphical interface. >Fix: --- /usr/src/usr.sbin/bluetooth/bthidd/hid.c.orig Sun Mar 12 22:04:51 2006 +++ /usr/src/usr.sbin/bluetooth/bthidd/hid.c Sun Mar 12 22:04:54 2006 @@ -130,6 +130,8 @@ mouse_x, mouse_y, mouse_z, mouse_butt, mevents, kevents; +#define HID_BUT(i) ((i) < 3 ? (((i) ^ 3) % 3) : (i)) + assert(s != NULL); assert(s->srv != NULL); assert(data != NULL); @@ -216,7 +218,7 @@ break; case HUP_BUTTON: - mouse_butt |= (val << (usage - 1)); + mouse_butt |= (val << HID_BUT(usage - 1)); mevents ++; break; >Release-Note: >Audit-Trail: >Unformatted: