diff options
author | marha <marha@users.sourceforge.net> | 2010-07-23 12:54:07 +0000 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2010-07-23 12:54:07 +0000 |
commit | 36df22a9b06d00d8e2ca97c274317d61e117c5fc (patch) | |
tree | 9b1bbb4af88129f5716202096de15665678d91e5 /xorg-server/hw/xwin/winmultiwindowwm.c | |
parent | 63dbb32737306d4c567a0bcbd7153da77cf864b5 (diff) | |
download | vcxsrv-36df22a9b06d00d8e2ca97c274317d61e117c5fc.tar.gz vcxsrv-36df22a9b06d00d8e2ca97c274317d61e117c5fc.tar.bz2 vcxsrv-36df22a9b06d00d8e2ca97c274317d61e117c5fc.zip |
Fix a GDI bitmap resource leak of window icons
Internal WM workaround for Java AWT bug
Diffstat (limited to 'xorg-server/hw/xwin/winmultiwindowwm.c')
-rw-r--r-- | xorg-server/hw/xwin/winmultiwindowwm.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/xorg-server/hw/xwin/winmultiwindowwm.c b/xorg-server/hw/xwin/winmultiwindowwm.c index ea1ff517d..913f01bac 100644 --- a/xorg-server/hw/xwin/winmultiwindowwm.c +++ b/xorg-server/hw/xwin/winmultiwindowwm.c @@ -1023,6 +1023,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
&& event.xproperty.atom == atmWmName)
{
|