diff --git a/platform/lang-impl/src/com/intellij/ide/bookmarks/actions/BookmarksAction.java b/platform/lang-impl/src/com/intellij/ide/bookmarks/actions/BookmarksAction.java index 00ccfbe0eea2..06660f67a039 100644 --- a/platform/lang-impl/src/com/intellij/ide/bookmarks/actions/BookmarksAction.java +++ b/platform/lang-impl/src/com/intellij/ide/bookmarks/actions/BookmarksAction.java @@ -121,6 +121,7 @@ public class BookmarksAction extends AnAction implements DumbAware, MasterDetail }); Point location = DimensionService.getInstance().getLocation(DIMENSION_SERVICE_KEY, project); + myPopup.getContent().putClientProperty("BookmarkPopup", "TRUE"); if (location != null) { popup.showInScreenCoordinates(WindowManagerEx.getInstanceEx().getMostRecentFocusedWindow(), location); } diff --git a/platform/lang-impl/src/com/intellij/ide/bookmarks/actions/EditBookmarkDescriptionAction.java b/platform/lang-impl/src/com/intellij/ide/bookmarks/actions/EditBookmarkDescriptionAction.java index 1bb3dfe0e45e..c632c89880d7 100644 --- a/platform/lang-impl/src/com/intellij/ide/bookmarks/actions/EditBookmarkDescriptionAction.java +++ b/platform/lang-impl/src/com/intellij/ide/bookmarks/actions/EditBookmarkDescriptionAction.java @@ -53,7 +53,7 @@ class EditBookmarkDescriptionAction extends DumbAwareAction { return; } Bookmark bookmark = BookmarksAction.getSelectedBookmarks(myList).get(0); - // myPopup.setUiVisible(false); + myPopup.setUiVisible(false); BookmarkManager.getInstance(myProject).editDescription(bookmark, myList); diff --git a/platform/platform-impl/src/com/intellij/ide/IdePopupManager.java b/platform/platform-impl/src/com/intellij/ide/IdePopupManager.java index 51e6f3af4df7..fbef68f67adb 100644 --- a/platform/platform-impl/src/com/intellij/ide/IdePopupManager.java +++ b/platform/platform-impl/src/com/intellij/ide/IdePopupManager.java @@ -79,11 +79,6 @@ public final class IdePopupManager implements IdeEventQueue.EventDispatcher { && !ultimateParentForFocusedComponent.equals(ultimateParentForEventWindow)) { shouldCloseAllPopup = true; } - else if (focused instanceof Dialog && ((Dialog)focused).isModal()) { - // close all popups except one that is opening a modal dialog - closeAllPopups(true, focused.getOwner()); - return false; - } } if (shouldCloseAllPopup) { diff --git a/platform/platform-impl/src/com/intellij/ui/popup/AbstractPopup.java b/platform/platform-impl/src/com/intellij/ui/popup/AbstractPopup.java index 536e39f23abc..719b14d84924 100644 --- a/platform/platform-impl/src/com/intellij/ui/popup/AbstractPopup.java +++ b/platform/platform-impl/src/com/intellij/ui/popup/AbstractPopup.java @@ -922,9 +922,12 @@ public class AbstractPopup implements JBPopup { window.setFocusableWindowState(myRequestFocus); window.setFocusable(myRequestFocus); // temporary w/a (will be brought back in jdk) - if (SystemInfo.isJetBrainsJvm) { + if ("TRUE".equals(getContent().getClientProperty("BookmarkPopup"))) { + window.setType(Window.Type.NORMAL); + } else if (SystemInfo.isJetBrainsJvm) { window.setType(Window.Type.POPUP); } + // Swing popup default always on top state is set in true window.setAlwaysOnTop(false);