do not add minimize listener if problem is already fixed in JDK

This commit is contained in:
Dennis Ushakov
2012-04-04 13:00:41 +04:00
parent 9e12b8eb1d
commit 66a45a8f71
2 changed files with 14 additions and 7 deletions
@@ -136,14 +136,16 @@ public class MacMainFrameDecorator implements UISettingsListener, Disposable {
final ID pool = invoke("NSAutoreleasePool", "new");
int v = UNIQUE_COUNTER.incrementAndGet();
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowDeiconified(WindowEvent e) {
if (e.getWindow() == frame && frame.getState() == Frame.ICONIFIED) {
frame.setState(Frame.NORMAL);
if (Patches.APPLE_BUG_ID_10514018) {
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowDeiconified(WindowEvent e) {
if (e.getWindow() == frame && frame.getState() == Frame.ICONIFIED) {
frame.setState(Frame.NORMAL);
}
}
}
});
});
}
try {
if (SystemInfo.isMacOSLion) {
if (!FULL_SCREEN_AVAILABLE) return;
@@ -110,6 +110,11 @@ public class Patches {
public static final boolean APPLE_BUG_ID_10207064 =
SystemInfo.isMac && (!SystemInfo.isMacOSLeopard || !SystemInfo.isJavaVersionAtLeast("1.6.0_30"));
/**
* Minimizing and restoring application via View | Minimize leads to visual artifacts
*/
public static final boolean APPLE_BUG_ID_10514018 = SystemInfo.isMac && !SystemInfo.isJavaVersionAtLeast("1.6.0_31");
/**
* Index out of bounds at apple.laf.AquaTabbedPaneUI.tabForCoordinate
* http://www.jetbrains.net/jira/browse/IDEADEV-15769