diff --git a/platform/lang-impl/src/com/intellij/execution/console/DuplexConsoleView.java b/platform/lang-impl/src/com/intellij/execution/console/DuplexConsoleView.java index 1a83e9dd6f6c..ed08ae4b4b41 100644 --- a/platform/lang-impl/src/com/intellij/execution/console/DuplexConsoleView.java +++ b/platform/lang-impl/src/com/intellij/execution/console/DuplexConsoleView.java @@ -286,10 +286,7 @@ public class DuplexConsoleView ext if (action2 instanceof ToggleUseSoftWrapsToolbarAction) { return new MergedWrapTextAction(((ToggleUseSoftWrapsToolbarAction)action1), (ToggleUseSoftWrapsToolbarAction)action2); } - else if (action2 instanceof ScrollToTheEndToolbarAction) { - return new MergedToggleAction(((ToggleAction)action1), (ToggleAction)action2); - } - else if (action2 instanceof ClearConsoleAction) { + else if (action2 instanceof ClearConsoleAction || action2 instanceof ScrollToTheEndToolbarAction) { return new MergedAction(action1, action2); } else { diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/ScrollToTheEndToolbarAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/ScrollToTheEndToolbarAction.java index 6aae35d38374..7dc5c824a39d 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/ScrollToTheEndToolbarAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/ScrollToTheEndToolbarAction.java @@ -5,17 +5,15 @@ import com.intellij.codeWithMe.ClientId; import com.intellij.icons.AllIcons; import com.intellij.idea.ActionsBundle; import com.intellij.openapi.actionSystem.ActionUpdateThread; +import com.intellij.openapi.actionSystem.AnAction; import com.intellij.openapi.actionSystem.AnActionEvent; -import com.intellij.openapi.actionSystem.ToggleAction; import com.intellij.openapi.editor.ClientEditorManager; -import com.intellij.openapi.editor.Document; import com.intellij.openapi.editor.Editor; -import com.intellij.openapi.editor.LogicalPosition; import com.intellij.openapi.editor.ex.util.EditorUtil; import com.intellij.openapi.project.DumbAware; import org.jetbrains.annotations.NotNull; -public class ScrollToTheEndToolbarAction extends ToggleAction implements DumbAware { +public class ScrollToTheEndToolbarAction extends AnAction implements DumbAware { private final Editor myEditor; public ScrollToTheEndToolbarAction(final @NotNull Editor editor) { @@ -27,28 +25,14 @@ public class ScrollToTheEndToolbarAction extends ToggleAction implements DumbAwa getTemplatePresentation().setIcon(AllIcons.RunConfigurations.Scroll_down); } - @Override - public boolean isSelected(@NotNull AnActionEvent e) { - var editor = ClientEditorManager.getClientEditor(myEditor, ClientId.getCurrentOrNull()); - Document document = editor.getDocument(); - return document.getLineCount() == 0 || document.getLineNumber(editor.getCaretModel().getOffset()) == document.getLineCount() - 1; - } - @Override public @NotNull ActionUpdateThread getActionUpdateThread() { return ActionUpdateThread.EDT; } @Override - public void setSelected(@NotNull AnActionEvent e, boolean state) { - var editor = ClientEditorManager.getClientEditor(myEditor, ClientId.getCurrentOrNull()); - if (state) { - EditorUtil.scrollToTheEnd(editor); - } else { - int lastLine = Math.max(0, editor.getDocument().getLineCount() - 1); - LogicalPosition currentPosition = editor.getCaretModel().getLogicalPosition(); - LogicalPosition position = new LogicalPosition(Math.max(0, Math.min(currentPosition.line, lastLine - 1)), currentPosition.column); - editor.getCaretModel().moveToLogicalPosition(position); - } + public void actionPerformed(@NotNull AnActionEvent e) { + Editor editor = ClientEditorManager.getClientEditor(myEditor, ClientId.getCurrentOrNull()); + EditorUtil.scrollToTheEnd(editor); } }