What's happening to DeviceMotionNotifies?
Peter Hutterer
mailinglists at who-t.net
Wed Nov 29 19:24:53 PST 2006
On 29/11/2006, at 19:31 , Jamey Sharp wrote:
>
> Which queue did you observe it entering? With Xlib/XCB, I can
> interpret
> your report as meaning either that you saw xcb's read_packet function
> pull the event off the wire, or you saw Xlib's process_responses and
> handle_event functions pass that event off to _XEnq.
>
> I started trying to reproduce your problem, but I don't have any
> XInput
> devices configured (as far as I know) and working out how to set up
> the
> evdev driver to treat my three mouse devices separately, instead of
> using /dev/input/mice, is more than I have time for tonight. I can at
> least try to diagnose remotely if you'll provide more information.
let's see. xmond tells me there's lots of these:
Extended event (fd 5): 53 00 0d 00 2a a4
9f 36 5d 00 00 00 01 00 20 00 00 00 00 00 1c 02 85 00 15 02 7e 00 00
00 01 02
Extended event: opcode 83, sequence number 000d
83 is the opcode I get back from the DeviceMotionEvent macro.
gdb single-stepping into XNextEvent() goes into _XReadEvents(), then
_XEnq
a print of event in _XEnq gives me an event with opcode 83.
(gdb) p event->u.keyButtonPointer
$3 = {pad00 = 852051, time = 916675313, root = 93, event = 2097153,
child = 0, rootX = 512, rootY = 384, eventX = 505, eventY = 377,
state = 0, sameScreen = 1 '\001', pad1 = 2 '\002'}
looks about alright to me. pad1 for extension events is the deviceID
AFAIK, which is 2 and correct.
XInputToWire copies the data correctly but returns DONT_ENQUEUE (0),
so the event is "ignored, or stashed away for many-to-one
compression" (comment in the source). As far as I can tell, that
happens to all events. _XReadEvents() never exits.
does that help?
Admittedly, there is no XCB involved. Two days ago when I was
debugging there was the occasional xcb_foobar floating past but that
was after 10 hours banging my head against gdb to find out what MPX
does wrong. I think there were some pink elephants around too ;). My
library setup may have been screwed then.
There are no DeviceValuator events. I'm using standard mice so they
wouldn't send ones, would they?
Cheers,
Peter
--
Multi-Pointer X Server
http://wearables.unisa.edu.au/mpx
More information about the xorg
mailing list