On Jan 31, 2012, at 1:14 AM, Daniel Stone wrote: > Hi, > > On 31 January 2012 04:56, Keith Packard <[email protected]> wrote: >> + if (pDev->key) { >> + for (i = 0; i < NUM_KEYCODES; i++) { >> + if (BitIsOn(pDev->key->down, i + MIN_KEYCODE)) { >> + QueueKeyboardEvents(pDev, KeyRelease, i + MIN_KEYCODE, >> NULL); >> + } >> + } >> + } > > You should be using key_is_down(pDev, i + MIN_KEYCODE, KEY_POSTED), > rather than directly poking pDev->key->down. This also eliminates a > small race where you might fail to release a key because the event has > been put in the event queue, but not processed.
Ah, I missed that. I should use button_is_down similarly. _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
