diff options
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.java | 18 |
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) { |