summaryrefslogtreecommitdiff
path: root/platform/platform-impl/src/com/intellij/openapi/ui/impl/DialogWrapperPeerImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/platform-impl/src/com/intellij/openapi/ui/impl/DialogWrapperPeerImpl.java')
-rw-r--r--platform/platform-impl/src/com/intellij/openapi/ui/impl/DialogWrapperPeerImpl.java18
1 files changed, 5 insertions, 13 deletions
diff --git a/platform/platform-impl/src/com/intellij/openapi/ui/impl/DialogWrapperPeerImpl.java b/platform/platform-impl/src/com/intellij/openapi/ui/impl/DialogWrapperPeerImpl.java
index 6ffa084931b4..d1abc0816845 100644
--- a/platform/platform-impl/src/com/intellij/openapi/ui/impl/DialogWrapperPeerImpl.java
+++ b/platform/platform-impl/src/com/intellij/openapi/ui/impl/DialogWrapperPeerImpl.java
@@ -49,6 +49,7 @@ import com.intellij.ui.components.JBLayeredPane;
import com.intellij.ui.mac.foundation.Foundation;
import com.intellij.ui.mac.foundation.ID;
import com.intellij.ui.mac.foundation.MacUtil;
+import com.intellij.util.ReflectionUtil;
import com.intellij.util.ui.UIUtil;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
@@ -59,7 +60,6 @@ import java.awt.*;
import java.awt.event.*;
import java.awt.image.BufferStrategy;
import java.lang.ref.WeakReference;
-import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -887,18 +887,12 @@ public class DialogWrapperPeerImpl extends DialogWrapperPeer implements FocusTra
if (rootPane != null) { // Workaround for bug in native code to hold rootPane
try {
- Field field = rootPane.getClass().getDeclaredField("glassPane");
- field.setAccessible(true);
- field.set(rootPane, null);
+ ReflectionUtil.resetField(rootPane.getClass(), null, "glassPane");
+ ReflectionUtil.resetField(rootPane.getClass(), null, "contentPane");
- field = rootPane.getClass().getDeclaredField("contentPane");
- field.setAccessible(true);
- field.set(rootPane, null);
rootPane = null;
- field = Window.class.getDeclaredField("windowListener");
- field.setAccessible(true);
- field.set(this, null);
+ ReflectionUtil.resetField(Window.class, null, "windowListener");
}
catch (Exception ignored) {
}
@@ -906,9 +900,7 @@ public class DialogWrapperPeerImpl extends DialogWrapperPeer implements FocusTra
// http://bugs.sun.com/view_bug.do?bug_id=6614056
try {
- final Field field = Dialog.class.getDeclaredField("modalDialogs");
- field.setAccessible(true);
- final List<?> list = (List<?>)field.get(null);
+ final List<?> list = ReflectionUtil.getField(Dialog.class, null, null, "modalDialogs");
list.remove(this);
}
catch (final Exception ignored) {