xforms is causing BadWindow errors. Although I haven't determined the
exact chain of events that lead to this (no pun intended), there's some
xforms internal code that is fairly obviously unsafe.

Any code that picks a particular event off the event queue and then
does something with the events' window parameter is at risk. This is
because the event queue can look like this :

        MotionNotify
        MotionNotify
        DestroyWindow

now, if code like fl_compress_motion() takes off the MotionNotifies,
it can attempt an XQueryPointer with the xmotion.window. Unfortunately
this is the same window that has just been destroyed (and the destroy
event is still unprocessed by xforms). Since some of this code isn't
protected by an X error handler, the BadWindow is returned to our
application, which by default abort()s.

We can work around these problems by surviving if we get a BadWindow,
but of course we would like to see this get fixed in xforms itself.

Comments ?

regards
john

p.s. has the patch I sent to fix loss of ClientRequest events inside
pup_interact been used ?

-- 
I am a complete moron for forgetting about endianness. May I be
forever marked as such.

Reply via email to