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 @@
- + @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ - + @@ -29,6 +29,14 @@ + + + + + + + + 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; + } }