From aec014bf0d34e433b5e2222115639b33167d332d Mon Sep 17 00:00:00 2001 From: Denis Fokin Date: Tue, 29 May 2018 17:52:14 +0300 Subject: [PATCH] EA-34246 - IAE: JDialog Workaround --- .../com/intellij/openapi/ui/impl/DialogWrapperPeerImpl.java | 2 +- .../src/com/intellij/util/ui/OwnerOptional.java | 5 ++--- 2 files changed, 3 insertions(+), 4 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 43a2ddc17c9e..90fab567f0b2 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 @@ -190,7 +190,7 @@ public class DialogWrapperPeerImpl extends DialogWrapperPeer { else { ActionCallback focused = new ActionCallback("DialogFocusedCallback"); ActionCallback typeAheadDone = new ActionCallback("DialogTypeAheadDone"); - MyDialog dialog = new MyDialog(owner, wrapper, project, focused, typeAheadDone, typeAhead); + MyDialog dialog = new MyDialog(OwnerOptional.fromComponent(owner).get(), wrapper, project, focused, typeAheadDone, typeAhead); dialog.setModalityType(ideModalityType.toAwtModality()); return dialog; } diff --git a/platform/platform-impl/src/com/intellij/util/ui/OwnerOptional.java b/platform/platform-impl/src/com/intellij/util/ui/OwnerOptional.java index 657c2a9ff8f6..39cd7675e52c 100644 --- a/platform/platform-impl/src/com/intellij/util/ui/OwnerOptional.java +++ b/platform/platform-impl/src/com/intellij/util/ui/OwnerOptional.java @@ -17,6 +17,7 @@ package com.intellij.util.ui; import com.intellij.ide.IdeEventQueue; import com.intellij.ide.IdePopupManager; +import com.intellij.openapi.util.SystemInfo; import com.intellij.openapi.wm.IdeFrame; import com.intellij.openapi.wm.WindowManager; import com.intellij.util.Consumer; @@ -52,9 +53,7 @@ public class OwnerOptional { if (manager.isPopupWindow(owner)) { - //manager.closeAllPopups(); - - if (!owner.isFocused()) { + if (!owner.isFocused() || !SystemInfo.isJetBrainsJvm) { owner = owner.getOwner(); while (owner != null