IDEA-95546 Last breakpoint dialog position isn't saved so it's shown every time on the old place

This commit is contained in:
andrey.zaytsev
2012-11-28 23:30:11 +04:00
parent c72fa83612
commit 9e14e3ef89
3 changed files with 22 additions and 9 deletions
@@ -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) {
@@ -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<Boolean> 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)
@@ -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();