On Apr 12, 2009, at 17:56, Christof Wolf wrote:
On Sunday 12 April 2009, Jeremy Huddleston wrote:
Ok, I was able to reproduce it and fix it! YAY! So would you mind trying 1.4.2-apple42 via MacPorts or download the X11.bin replacement from http://xquartz.macosforge.org/downloads and verify that it's fixed for you as well. Jeremy,
I could not compile apple42 via MacPorts - but I downloaded it - and it works fine!! no CPU issue - what caused it anyway? - if that is not too complicated :-)
Thanks for testing. Could you tell me what error you're encountering with Macports building it? It was a combination of two errors: We were using the wrong values for ProximityIn and ProximityOut when generating the proximity events (pen going in or leaving the tablet area). This resulted in num_events being 0 and we didn't queue up those events. After enqueuing the events, we put a byte in a pipe that the server thread is select()ing on to wake it up (yes, hacky.). The server thread reads this byte out of that pipe after it dequeues the event. Unfortunately, since there actually wasn't an event in the queue, it didn't get around to clearing the pipe and the select() turned into effectively a no-op in the while loop. You didn't see this bad behavior when X11 was in the foreground because we were sending MotionNotify events as well (thus there was a "real" event in the queue). So I fixed these two errors by checking num_events before the poke and making sure that we properly generate the proximity events.