On Fri, Jul 10, 2020 at 12:36:51AM +0200 I heard the voice of
Carl Svensson, and lo! it spake thus:
>
> After a bit of fiddling around, I managed to narrow it down to
> UseThreeDBorders and found this little chunk of code in
> event_handlers.c:
>
> /* Workaround for Java 1.4 bug that freezes the application whenever
> * a new window is displayed. (When UsePPosition is on and either
> * UseThreeDBorders or BorderWidth 0 is set.)
> */
> if(!bw) {
> sendEvent = true;
> }
>
> When commenting out that little if-statement and recompiling, the
> Firefox context menu works as expected again.
(I assume you mean commenting out the whole thing, so sendEvent
doesn't get set, rather than commenting just the conditional, so
sendEvent _always_ gets set)
First off, sentEvent essentially winds up controlling whether we send
a ConfigureNotify[0] on down to the window the event happened in. So
why would FF come up with "Oh, my main window may have moved or
resized, that must mean you clicked somewhere in the new context menu
window"? Wacky wacky. I mean, even on the scale of wacky things
we've seen FF do...
The if(bw) thing seems weird too. From context, I guess that's just a
obsure way of expressing "if 3dborders"? I'll see what I can dig
up...
> Not sure how to approach this - it seems to be a fix for something
> else already, although I suspect Firefox is a more common
> application than Java 1.4 (which I think is from 2002 or something).
The origin seems to be in r79, which lists it among the other things
it pulled in as
* Andys java fix
http://tigerdyr.wheel.dk/ctwm-archive/1151.html
archive.org to the rescue!
https://web.archive.org/web/20051031140029/http://tigerdyr.wheel.dk/ctwm-archive/1151.html
I did a little poking around Java's bug history, but couldn't find
anything. Maybe Oracle re-proprietorized it.
[0]
https://www.x.org/releases/X11R7.7/doc/libX11/libX11/libX11.html#ConfigureNotify_Events
--
Matthew Fuller (MF4839) | [email protected]
Systems/Network Administrator | http://www.over-yonder.net/~fullermd/
On the Internet, nobody can hear you scream.