提交 f9fd40e0 编写于 作者: B bagiras

7145980: Dispose method of window.java takes long

Reviewed-by: anthony
上级 07b734a2
......@@ -10070,11 +10070,12 @@ public abstract class Component implements ImageObserver, MenuContainer,
}
Window window = getContainingWindow();
if (window != null) {
if (!window.hasHeavyweightDescendants() || !window.hasLightweightDescendants()) {
if (!window.hasHeavyweightDescendants() || !window.hasLightweightDescendants() || window.isDisposing()) {
if (mixingLog.isLoggable(PlatformLogger.FINE)) {
mixingLog.fine("containing window = " + window +
"; has h/w descendants = " + window.hasHeavyweightDescendants() +
"; has l/w descendants = " + window.hasLightweightDescendants());
"; has l/w descendants = " + window.hasLightweightDescendants() +
"; disposing = " + window.isDisposing());
}
return false;
}
......
......@@ -226,6 +226,7 @@ public class Window extends Container implements Accessible {
static boolean systemSyncLWRequests = false;
boolean syncLWRequests = false;
transient boolean beforeFirstShow = true;
private transient boolean disposing = false;
static final int OPENED = 0x01;
......@@ -1162,6 +1163,8 @@ public class Window extends Container implements Accessible {
void doDispose() {
class DisposeAction implements Runnable {
public void run() {
disposing = true;
try {
// Check if this window is the fullscreen window for the
// device. Exit the fullscreen mode prior to disposing
// of the window if that's the case.
......@@ -1192,6 +1195,9 @@ public class Window extends Container implements Accessible {
}
}
clearCurrentFocusCycleRootOnHide();
} finally {
disposing = false;
}
}
}
DisposeAction action = new DisposeAction();
......@@ -2734,6 +2740,10 @@ public class Window extends Container implements Accessible {
return visible;
}
boolean isDisposing() {
return disposing;
}
/**
* @deprecated As of J2SE 1.4, replaced by
* {@link Component#applyComponentOrientation Component.applyComponentOrientation}.
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册