I was incorrect. It seems that querying the master pointer does not give the button state of the slave pointer even for normal mice.
I did some more digging on this today, and I found that an HP branded wireless USB mouse has the same issue. With this mouse (as well as the logitech wireless mouse), the return from: xdev = XListInputDevices(GDK_WINDOW_XDISPLAY(rootwin), &ndevices_return); lists the USB device twice, but both have xdev[num].use == 3 (IsXExtensionKeyboard as defined in X11/XI.h). I think the problem is that one of those devices should have the use member set to 4. The attached xinput list provided by Locke above shows this correctly with one device as a pointer and one as a keyboard, but I'm assuming the xinput program is using the XI2 API. With a simple little program to list the devices and print the use member: 13 devices found Virtual core pointer: use is 0 Virtual core keyboard: use is 1 Virtual core XTEST pointer: is a pointer Virtual core XTEST keyboard: use is 3 Power Button: use is 3 Power Button: use is 3 G15 Gaming Keyboard: use is 3 G15 Gaming Keyboard: use is 3 Logitech USB-PS/2 Optical Mouse: is a pointer Macintosh mouse button emulation: is a pointer G15 Extra Keys: use is 3 BTC USB Multimedia Cordless Kit: use is 3 BTC USB Multimedia Cordless Kit: use is 3 While xinput prints: BTC USB Multimedia Cordless Kit id=14 [slave pointer (2)] BTC USB Multimedia Cordless Kit id=13 [slave keyboard (3)] -- unable to use mouse buttons to trigger events in mangler https://bugs.launchpad.net/bugs/575465 You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs