diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/evaluate/XDebuggerEvaluationDialog.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/evaluate/XDebuggerEvaluationDialog.java index 6e7634414f21..49fd002c4ba3 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/evaluate/XDebuggerEvaluationDialog.java +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/evaluate/XDebuggerEvaluationDialog.java @@ -137,9 +137,7 @@ public class XDebuggerEvaluationDialog extends DialogWrapper { }.registerCustomShortcutSet(new CustomShortcutSet(KeyStroke.getKeyStroke(KeyEvent.VK_R, InputEvent.ALT_DOWN_MASK)), getRootPane(), myDisposable); - Condition rootFilter = node -> node.getParent() instanceof EvaluatingExpressionRootNode; - myTreePanel.getTree().expandNodesOnLoad(rootFilter); - myTreePanel.getTree().selectNodeOnLoad(rootFilter); + myTreePanel.getTree().expandNodesOnLoad(getFirstChildCondition()); EvaluationMode mode = XDebuggerSettingManagerImpl.getInstanceImpl().getGeneralSettings().getEvaluationDialogMode(); if (mode == EvaluationMode.CODE_FRAGMENT && !myIsCodeFragmentEvaluationSupported) { @@ -307,6 +305,7 @@ public class XDebuggerEvaluationDialog extends DialogWrapper { final XDebuggerTree tree = myTreePanel.getTree(); tree.markNodesObsolete(); tree.setRoot(new EvaluatingExpressionRootNode(this, tree), false); + tree.selectNodeOnLoad(getFirstChildCondition()); myResultPanel.invalidate(); @@ -323,6 +322,10 @@ public class XDebuggerEvaluationDialog extends DialogWrapper { } } + private static Condition getFirstChildCondition() { + return node -> node.getParent() instanceof EvaluatingExpressionRootNode; + } + @Override public void doCancelAction() { getInputEditor().saveTextInHistory();