diff --git a/core.windows/src/org/netbeans/core/windows/view/ui/MainWindow.java b/core.windows/src/org/netbeans/core/windows/view/ui/MainWindow.java --- a/core.windows/src/org/netbeans/core/windows/view/ui/MainWindow.java +++ b/core.windows/src/org/netbeans/core/windows/view/ui/MainWindow.java @@ -58,6 +58,7 @@ import java.awt.Rectangle; import java.awt.event.*; import java.io.File; +import java.lang.reflect.Field; import java.util.*; import java.util.logging.Level; import java.util.logging.Logger; @@ -139,6 +140,23 @@ if (mainMenuBar == null) { mainMenuBar = createMenuBar(); ToolbarPool.getDefault().waitFinished(); + if ("gnome-shell".equals(System.getenv("DESKTOP_SESSION"))) { + try { + Class xwm = Class.forName("sun.awt.X11.XWM"); + Field awt_wmgr = xwm.getDeclaredField("awt_wmgr"); + awt_wmgr.setAccessible(true); + Field other_wm = xwm.getDeclaredField("OTHER_WM"); + other_wm.setAccessible(true); + if (awt_wmgr.get(null).equals(other_wm.get(null))) { + Field metacity_wm = xwm.getDeclaredField("METACITY_WM"); + metacity_wm.setAccessible(true); + awt_wmgr.set(null, metacity_wm.get(null)); + LOGGER.info("installed #198639 workaround"); + } + } catch (Exception x) { + LOGGER.log(Level.FINE, null, x); + } + } } }