Cygwin/X: Internal WM workaround for Java AWT bug
Java applications using AWT on JRE 1.6.0 break with non-reparenting WMs AWT doesn't explicitly know about (See sun bug #6434227) XDecoratedPeer.handleConfigureNotifyEvent() only processes non-synthetic ConfigureNotify events to update window location if it's identified the WM as a non-reparenting WM it knows about (compiz or lookingglass) Rather than tell all sorts of lies to get XWM to recognize us as one of those, simply send a synthetic ConfigureNotify for every non-synthetic one Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk> Reviewed-by: Colin Harrison <colin.harrison@virgin.net> Tested-by: Colin Harrison <colin.harrison@virgin.net>
This commit is contained in:
parent
918a9c99cf
commit
19e764eee0
|
@ -1114,6 +1114,30 @@ winMultiWindowXMsgProc (void *pArg)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (event.type == ConfigureNotify)
|
||||||
|
{
|
||||||
|
if (!event.xconfigure.send_event)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
Java applications using AWT on JRE 1.6.0 break with non-reparenting WMs AWT
|
||||||
|
doesn't explicitly know about (See sun bug #6434227)
|
||||||
|
|
||||||
|
XDecoratedPeer.handleConfigureNotifyEvent() only processes non-synthetic
|
||||||
|
ConfigureNotify events to update window location if it's identified the
|
||||||
|
WM as a non-reparenting WM it knows about (compiz or lookingglass)
|
||||||
|
|
||||||
|
Rather than tell all sorts of lies to get XWM to recognize us as one of
|
||||||
|
those, simply send a synthetic ConfigureNotify for every non-synthetic one
|
||||||
|
*/
|
||||||
|
XEvent event_send = event;
|
||||||
|
event_send.xconfigure.send_event = TRUE;
|
||||||
|
event_send.xconfigure.event = event.xconfigure.window;
|
||||||
|
XSendEvent(event.xconfigure.display,
|
||||||
|
event.xconfigure.window,
|
||||||
|
True, StructureNotifyMask,
|
||||||
|
&event_send);
|
||||||
|
}
|
||||||
|
}
|
||||||
else if (event.type == PropertyNotify
|
else if (event.type == PropertyNotify
|
||||||
&& event.xproperty.atom == atmWmName)
|
&& event.xproperty.atom == atmWmName)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue