From 9e14e3ef89de2d7f07a4092c6711fb33ea42ad3a Mon Sep 17 00:00:00 2001 From: "andrey.zaytsev" Date: Wed, 28 Nov 2012 23:27:41 +0400 Subject: [PATCH] IDEA-95546 Last breakpoint dialog position isn't saved so it's shown every time on the old place --- .../ui/popup/util/MasterDetailPopupBuilder.java | 9 ++++++++- .../openapi/ui/popup/PopupChooserBuilder.java | 14 +++++++++++--- .../tree/BreakpointMasterDetailPopupBuilder.java | 8 +++----- 3 files changed, 22 insertions(+), 9 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/ui/popup/util/MasterDetailPopupBuilder.java b/platform/lang-impl/src/com/intellij/ui/popup/util/MasterDetailPopupBuilder.java index 4195840694dd..b8d4eace14ca 100644 --- a/platform/lang-impl/src/com/intellij/ui/popup/util/MasterDetailPopupBuilder.java +++ b/platform/lang-impl/src/com/intellij/ui/popup/util/MasterDetailPopupBuilder.java @@ -60,6 +60,12 @@ public class MasterDetailPopupBuilder implements MasterController { private final DetailController myDetailController = new DetailController(this); + private boolean myUseDimensionServiceForXYLocation; + + public void setUseDimensionServiceForXYLocation(boolean useDimensionServiceForXYLocation) { + myUseDimensionServiceForXYLocation = useDimensionServiceForXYLocation; + } + public String getDimensionServiceKey() { return myDimensionServiceKey; @@ -150,7 +156,8 @@ public class MasterDetailPopupBuilder implements MasterController { setSettingButton(toolBar). setSouthComponent(footerPanel). setCancelOnWindowDeactivation(myCancelOnWindowDeactivation). - setCancelOnClickOutside(myCancelOnClickOutside); + setCancelOnClickOutside(myCancelOnClickOutside). + setUseDimensionServiceForXYLocation(myUseDimensionServiceForXYLocation); if (myDoneRunnable != null) { diff --git a/platform/platform-api/src/com/intellij/openapi/ui/popup/PopupChooserBuilder.java b/platform/platform-api/src/com/intellij/openapi/ui/popup/PopupChooserBuilder.java index 47af5ebc3716..efbbdda03780 100644 --- a/platform/platform-api/src/com/intellij/openapi/ui/popup/PopupChooserBuilder.java +++ b/platform/platform-api/src/com/intellij/openapi/ui/popup/PopupChooserBuilder.java @@ -19,9 +19,11 @@ package com.intellij.openapi.ui.popup; import com.intellij.openapi.actionSystem.DataProvider; import com.intellij.openapi.actionSystem.PlatformDataKeys; import com.intellij.openapi.util.Computable; -import com.intellij.openapi.util.DimensionService; import com.intellij.openapi.util.Pair; -import com.intellij.ui.*; +import com.intellij.ui.ActiveComponent; +import com.intellij.ui.ListScrollingUtil; +import com.intellij.ui.ScreenUtil; +import com.intellij.ui.ScrollPaneFactory; import com.intellij.ui.awt.RelativePoint; import com.intellij.ui.components.JBScrollPane; import com.intellij.ui.components.JBViewport; @@ -81,6 +83,7 @@ public class PopupChooserBuilder { private boolean myModalContext; private boolean myCloseOnEnter = true; private boolean myCancelOnWindowDeactivation = true; + private boolean myUseForXYLocation; public PopupChooserBuilder setCancelOnClickOutside(boolean cancelOnClickOutside) { myCancelOnClickOutside = cancelOnClickOutside; @@ -163,6 +166,11 @@ public class PopupChooserBuilder { return this; } + public PopupChooserBuilder setUseDimensionServiceForXYLocation(boolean use) { + myUseForXYLocation = use; + return this; + } + public PopupChooserBuilder setCancelCallback(Computable callback) { myCancelCallback = callback; return this; @@ -283,7 +291,7 @@ public class PopupChooserBuilder { builder.addListener(each); } - builder.setDimensionServiceKey(null, myDimensionServiceKey, false) + builder.setDimensionServiceKey(null, myDimensionServiceKey, myUseForXYLocation) .setRequestFocus(myRequestFocus) .setResizable(myForceResizable) .setMovable(myForceMovable) diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/ui/tree/BreakpointMasterDetailPopupBuilder.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/ui/tree/BreakpointMasterDetailPopupBuilder.java index b8893e500f99..566d5e508bd2 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/ui/tree/BreakpointMasterDetailPopupBuilder.java +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/ui/tree/BreakpointMasterDetailPopupBuilder.java @@ -17,8 +17,6 @@ package com.intellij.xdebugger.impl.breakpoints.ui.tree; import com.intellij.openapi.actionSystem.*; import com.intellij.openapi.actionSystem.ex.CheckboxAction; -import com.intellij.openapi.keymap.Keymap; -import com.intellij.openapi.keymap.KeymapManager; import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.popup.JBPopup; import com.intellij.openapi.ui.popup.JBPopupFactory; @@ -125,6 +123,7 @@ public class BreakpointMasterDetailPopupBuilder { myPopupBuilder = new MasterDetailPopupBuilder(myProject); if (!myPlainView) { myPopupBuilder.setDimensionServiceKey(getClass().getName()); + myPopupBuilder.setUseDimensionServiceForXYLocation(true); myPopupBuilder.setCancelOnClickOutside(false); } myPopupBuilder.setCancelOnWindowDeactivation(false); @@ -253,9 +252,8 @@ public class BreakpointMasterDetailPopupBuilder { } }); - final Keymap keymap = KeymapManager.getInstance().getActiveKeymap(); - final Shortcut[] generateShortcuts = keymap.getShortcuts("Generate"); - myAddAction.registerCustomShortcutSet(new CustomShortcutSet(generateShortcuts), myPopup.getContent()); + final ShortcutSet newShortcut = CommonShortcuts.getNew(); + myAddAction.registerCustomShortcutSet(newShortcut, myPopup.getContent()); new GotoSourceAction();