| Summary: | X doesn't receive button #7 from moused's /dev/sysmouse | ||||||
|---|---|---|---|---|---|---|---|
| Product: | Ports & Packages | Reporter: | siegbert.baude <siegbert.baude> | ||||
| Component: | Individual Port(s) | Assignee: | Eric Anholt <anholt> | ||||
| Status: | Closed FIXED | ||||||
| Severity: | Affects Only Me | ||||||
| Priority: | Normal | ||||||
| Version: | Latest | ||||||
| Hardware: | Any | ||||||
| OS: | Any | ||||||
| Attachments: |
|
||||||
Responsible Changed From-To: freebsd-ports->anholt over to maintainer The following patch fixed it for me, and I'll be submitting it to XFree86. However, due to ports freeze it will have to wait until post-5.0. -- Eric Anholt eta@lclark.edu http://people.freebsd.org/~anholt/dri/ anholt@FreeBSD.org State Changed From-To: open->closed Fix has been committed. |
If you map any button to button #7 on the command line of moused, you get the correct events on the console (using the -fd flags for moused). But within X the events of button #7 are simply ignored as you can check with xev. This is with a Microsoft IntelliMouse Optical on XFree86-4.2.0_1,1 but I saw the same behaviour along the whole XFree86-4.x line. I never checked this for XFree86-3.x The conventional approach i.e. configuring only X (and no additional -m flags for moused) to map the ZAxis and changing buttons 6/7 with 4/5 with xmodmap works however. All 7 buttons are received then by xev. Also not using moused at all, but pointing X directly to the correct device works for all seven buttons. How-To-Repeat: root # moused -fd -p /dev/psm0 -t auto -m 7=3 moused: proto params: f8 80 00 00 8 00 ff moused: port: /dev/psm0 interface: ps/2 type: sysmouse model: IntelliMouse Explorer [snip] Pressing mouse button #3 here, which is now mapped to #7 moused: received char 0x87 moused: received char 0x0 moused: received char 0x0 moused: received char 0x0 moused: received char 0x0 moused: received char 0x0 moused: received char 0x0 moused: received char 0x7f moused: assembled full packet (len 8) 87,0,0,0,0,0,0,7f moused: tv: 1032678418 792660 moused: flags:00000004 buttons:00000000 obuttons:00000004 moused: activity : buttons 0x00000000 dx 0 dy 0 dz 0 moused: mstate[6]->count:1 moused: button 7 count 0 But xev sees only buttons up to #6. #7 is silently ignored. Relevant lines of /etc/X11/XF86Config: Section "InputDevice" Identifier "MS IntelliMouse Optical" Driver "mouse" Option "Protocol" "Auto" Option "Device" "/dev/sysmouse" Option "Buttons" "7" EndSection