diff --git a/platform/platform-resources-en/src/messages/XDebuggerBundle.properties b/platform/platform-resources-en/src/messages/XDebuggerBundle.properties
index 058e446bc896..59692f81c790 100644
--- a/platform/platform-resources-en/src/messages/XDebuggerBundle.properties
+++ b/platform/platform-resources-en/src/messages/XDebuggerBundle.properties
@@ -123,3 +123,4 @@ setting.sort.alphabetically.label=Sort a&lphabetically
setting.hide.window.label=Hide debug &window on process termination
setting.focus.app.on.breakpoint.label=Focus application on breakpoint
+settings.show.window.label=Show &debug window on breakpoint
diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/XDebugSessionImpl.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/XDebugSessionImpl.java
index a3fa4327a7fd..08538a2de6e7 100644
--- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/XDebugSessionImpl.java
+++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/XDebugSessionImpl.java
@@ -709,7 +709,9 @@ public class XDebugSessionImpl implements XDebugSession {
@Override
public void run() {
if (mySessionTab != null) {
- mySessionTab.toFront(true);
+ if (XDebuggerSettingsManager.getInstanceImpl().getGeneralSettings().isShowDebuggerOnBreakpoint()) {
+ mySessionTab.toFront(true);
+ }
mySessionTab.getUi().attractBy(XDebuggerUIConstants.LAYOUT_VIEW_BREAKPOINT_CONDITION);
}
}
diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/settings/GeneralConfigurableUi.form b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/settings/GeneralConfigurableUi.form
index 4d1f8e52d24f..1260cb3ff44a 100644
--- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/settings/GeneralConfigurableUi.form
+++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/settings/GeneralConfigurableUi.form
@@ -1,6 +1,6 @@
diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/settings/GeneralConfigurableUi.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/settings/GeneralConfigurableUi.java
index 273c5490e35d..bab2c88465ad 100644
--- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/settings/GeneralConfigurableUi.java
+++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/settings/GeneralConfigurableUi.java
@@ -25,23 +25,27 @@ class GeneralConfigurableUi implements ConfigurableUi
private JPanel rootPanel;
private JCheckBox hideDebugWindowCheckBox;
private JCheckBox focusApplicationOnBreakpointCheckBox;
+ private JCheckBox myShowDebugWindowOnCheckBox;
@Override
public void reset(@NotNull XDebuggerGeneralSettings settings) {
focusApplicationOnBreakpointCheckBox.setSelected(Registry.is("debugger.mayBringFrameToFrontOnBreakpoint"));
hideDebugWindowCheckBox.setSelected(settings.isHideDebuggerOnProcessTermination());
+ myShowDebugWindowOnCheckBox.setSelected(settings.isShowDebuggerOnBreakpoint());
}
@Override
public boolean isModified(@NotNull XDebuggerGeneralSettings settings) {
return focusApplicationOnBreakpointCheckBox.isSelected() != Registry.is("debugger.mayBringFrameToFrontOnBreakpoint") ||
- hideDebugWindowCheckBox.isSelected() != settings.isHideDebuggerOnProcessTermination();
+ hideDebugWindowCheckBox.isSelected() != settings.isHideDebuggerOnProcessTermination() ||
+ myShowDebugWindowOnCheckBox.isSelected() != settings.isShowDebuggerOnBreakpoint();
}
@Override
public void apply(@NotNull XDebuggerGeneralSettings settings) {
Registry.get("debugger.mayBringFrameToFrontOnBreakpoint").setValue(focusApplicationOnBreakpointCheckBox.isSelected());
settings.setHideDebuggerOnProcessTermination(hideDebugWindowCheckBox.isSelected());
+ settings.setShowDebuggerOnBreakpoint(myShowDebugWindowOnCheckBox.isSelected());
}
@NotNull
diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/settings/XDebuggerGeneralSettings.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/settings/XDebuggerGeneralSettings.java
index 9720d9517c51..205c1c3948ed 100644
--- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/settings/XDebuggerGeneralSettings.java
+++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/settings/XDebuggerGeneralSettings.java
@@ -27,6 +27,7 @@ public class XDebuggerGeneralSettings {
private boolean myUnmuteOnStop = false;
private boolean hideDebuggerOnProcessTermination;
+ private boolean myShowDebuggerOnBreakpoint = true;
@Tag("evaluation-dialog-mode")
public EvaluationMode getEvaluationDialogMode() {
@@ -53,4 +54,12 @@ public class XDebuggerGeneralSettings {
public void setHideDebuggerOnProcessTermination(boolean hideDebuggerOnProcessTermination) {
this.hideDebuggerOnProcessTermination = hideDebuggerOnProcessTermination;
}
+
+ public boolean isShowDebuggerOnBreakpoint() {
+ return myShowDebuggerOnBreakpoint;
+ }
+
+ public void setShowDebuggerOnBreakpoint(boolean showDebuggerOnBreakpoint) {
+ this.myShowDebuggerOnBreakpoint = showDebuggerOnBreakpoint;
+ }
}