On Wed, Feb 20, 2002 at 05:22:20PM +0100, Lars Gullik Bjønnes wrote:

> "Anyone for ignoring segfaults?"

there's a big difference ;)

> will ignoring BW actually work?

yes.

I've investigated further, and I know now

a) what the xforms bug is

and 

b) how to reproduce it

I haven't yet connected b) to a), and I have no idea for a workaround.
It may be possible that it's only an xforms 0.88.9 bug, in which case
it can be ignored I suppose.

Can people try :

1. insert inset graphics, choose a filename via the file dialog
2. click OK and (while it's loading) quickly move the mouse up
   to hover over the graphics inset.

Hopefully (!) you will get a BadWindow.

Now, this comes from xforms compressing motion events by picking them
from the queue without regard to whether the window has actually died
in the meantime or not. This sequence of events tickles this bug it
seems. If we have an event queue like this :

        MotionNotify (win 4)
        MotionNotify (win 4)
        MotionNotify (win 4)
        DestroyNotify (win 4)

we remove the motion notifies to leave :

        DestroyNotify (win 4)

/Before/ seeing this, it will remove all the motion notifies, then if one of
them "is_hint", then it does an XQueryPointer(), which causes the BadWindow,
because it is destroyed !!

I've Cc:ed the xforms list in the hope Steve or someone else can tell us
that this bug isn't in other xforms versions, or come up with a work around

regards
john

p.s. I'll be happy to fix the problem myself if xforms was open source by now :)

-- 
"They eat cold meat for breakfast and make jokes about gzip."
        - Rik Hemsley on KDE developers

Reply via email to