diff --git a/apps/desktop/src/renderer/globals.css b/apps/desktop/src/renderer/globals.css index a70939dc814..3927ca1fa29 100644 --- a/apps/desktop/src/renderer/globals.css +++ b/apps/desktop/src/renderer/globals.css @@ -147,7 +147,7 @@ margin: 0; overflow: hidden; /* prevent scroll-lock adjustments from collapsing layout */ user-select: none; - scroll-behavior: smooth; + scroll-behavior: auto; -webkit-app-region: no-drag; -webkit-font-smoothing: antialiased; } diff --git a/apps/desktop/src/renderer/screens/main/components/WorkspaceView/ContentView/TabsContent/Terminal/ScrollToBottomButton/ScrollToBottomButton.tsx b/apps/desktop/src/renderer/screens/main/components/WorkspaceView/ContentView/TabsContent/Terminal/ScrollToBottomButton/ScrollToBottomButton.tsx index 4cd5fc2dae3..be0e1399d4b 100644 --- a/apps/desktop/src/renderer/screens/main/components/WorkspaceView/ContentView/TabsContent/Terminal/ScrollToBottomButton/ScrollToBottomButton.tsx +++ b/apps/desktop/src/renderer/screens/main/components/WorkspaceView/ContentView/TabsContent/Terminal/ScrollToBottomButton/ScrollToBottomButton.tsx @@ -4,7 +4,7 @@ import type { Terminal } from "@xterm/xterm"; import { useCallback, useEffect, useState } from "react"; import { HiArrowDown } from "react-icons/hi2"; import { useHotkeyText } from "renderer/stores/hotkeys"; -import { smoothScrollToBottom } from "../utils"; +import { scrollToBottom } from "../utils"; interface ScrollToBottomButtonProps { terminal: Terminal | null; @@ -42,7 +42,7 @@ export function ScrollToBottomButton({ terminal }: ScrollToBottomButtonProps) { const handleClick = () => { if (terminal) { - smoothScrollToBottom(terminal); + scrollToBottom(terminal); } }; diff --git a/apps/desktop/src/renderer/screens/main/components/WorkspaceView/ContentView/TabsContent/Terminal/Terminal.tsx b/apps/desktop/src/renderer/screens/main/components/WorkspaceView/ContentView/TabsContent/Terminal/Terminal.tsx index 0b9d3a69d9a..b46e1bf175c 100644 --- a/apps/desktop/src/renderer/screens/main/components/WorkspaceView/ContentView/TabsContent/Terminal/Terminal.tsx +++ b/apps/desktop/src/renderer/screens/main/components/WorkspaceView/ContentView/TabsContent/Terminal/Terminal.tsx @@ -38,8 +38,8 @@ import { TerminalSearch } from "./TerminalSearch"; import type { TerminalProps, TerminalStreamEvent } from "./types"; import { getScrollOffsetFromBottom, + scrollToBottom, shellEscapePaths, - smoothScrollToBottom, } from "./utils"; const FIRST_RENDER_RESTORE_FALLBACK_MS = 250; @@ -934,7 +934,7 @@ export const Terminal = ({ tabId, workspaceId }: TerminalProps) => { "SCROLL_TO_BOTTOM", () => { if (xtermRef.current) { - smoothScrollToBottom(xtermRef.current); + scrollToBottom(xtermRef.current); } }, { enabled: isFocused, preventDefault: true }, @@ -1266,7 +1266,7 @@ export const Terminal = ({ tabId, workspaceId }: TerminalProps) => { }; const handleScrollToBottom = () => { - smoothScrollToBottom(xterm); + scrollToBottom(xterm); }; const handleWrite = (data: string) => { diff --git a/apps/desktop/src/renderer/screens/main/components/WorkspaceView/ContentView/TabsContent/Terminal/utils.ts b/apps/desktop/src/renderer/screens/main/components/WorkspaceView/ContentView/TabsContent/Terminal/utils.ts index 4d2782b64c1..4919826ca87 100644 --- a/apps/desktop/src/renderer/screens/main/components/WorkspaceView/ContentView/TabsContent/Terminal/utils.ts +++ b/apps/desktop/src/renderer/screens/main/components/WorkspaceView/ContentView/TabsContent/Terminal/utils.ts @@ -5,12 +5,12 @@ export function shellEscapePaths(paths: string[]): string { return quote(paths); } -export function smoothScrollToBottom(terminal: Terminal): void { +export function scrollToBottom(terminal: Terminal): void { const viewport = terminal.element?.querySelector(".xterm-viewport"); if (viewport) { viewport.scrollTo({ top: viewport.scrollHeight, - behavior: "smooth", + behavior: "instant", }); } else { terminal.scrollToBottom();