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 cf65339f7a10..ac109195ed2f 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 @@ -275,10 +275,14 @@ public class XDebuggerEvaluationDialog extends DialogWrapper { myMode = mode; + Editor oldEditor = (myInputComponent != null) ? myInputComponent.getInputEditor().getEditor() : null; + myInputComponent = createInputComponent(mode, text); myMainPanel.removeAll(); myInputComponent.addComponent(myMainPanel, myResultPanel); + XDebuggerEditorBase.copyCaretPosition(oldEditor, myInputComponent.getInputEditor().getEditor()); + mySwitchModeAction.putValue(Action.NAME, getSwitchButtonText(mode)); getInputEditor().requestFocusInEditor(); } diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/XDebuggerEditorBase.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/XDebuggerEditorBase.java index 5255c41d599a..0a26928c9f07 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/XDebuggerEditorBase.java +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/XDebuggerEditorBase.java @@ -531,7 +531,7 @@ public abstract class XDebuggerEditorBase implements Expandable { DebuggerUIUtil.getActionShortcutText(IdeActions.ACTION_PREVIOUS_OCCURENCE)); } - private static void copyCaretPosition(@Nullable Editor source, @Nullable Editor destination) { + public static void copyCaretPosition(@Nullable Editor source, @Nullable Editor destination) { if (source != null && destination != null) { destination.getCaretModel().moveToOffset(source.getCaretModel().getOffset()); }