feat: double click floating terminal titlebar (#1957)

This commit is contained in:
Neil 2026-05-15 12:07:14 -07:00 committed by GitHub
parent 6d8c835dd4
commit a92da4b1a2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 17 additions and 6 deletions

View File

@ -30,6 +30,13 @@ type FloatingTerminalPanelProps = {
onOpenChange: (open: boolean) => void
}
const FLOATING_TERMINAL_NO_DRAG_SELECTOR =
'button,input,textarea,select,[role="menuitem"],[data-testid="sortable-tab"],[data-floating-terminal-no-drag]'
function isFloatingTerminalDragTarget(target: EventTarget): boolean {
return !(target instanceof HTMLElement && target.closest(FLOATING_TERMINAL_NO_DRAG_SELECTOR))
}
export function FloatingTerminalPanel({
open,
onOpenChange
@ -211,12 +218,7 @@ export function FloatingTerminalPanel({
return
}
const target = event.target
if (
target instanceof HTMLElement &&
target.closest(
'button,input,textarea,select,[role="menuitem"],[data-testid="sortable-tab"],[data-floating-terminal-no-drag]'
)
) {
if (!isFloatingTerminalDragTarget(target)) {
return
}
dragRef.current = {
@ -249,6 +251,14 @@ export function FloatingTerminalPanel({
}
}
const handleTitlebarDoubleClick = (event: React.MouseEvent<HTMLDivElement>): void => {
if (event.button !== 0 || !isFloatingTerminalDragTarget(event.target)) {
return
}
event.preventDefault()
toggleMaximized()
}
const dismissOrchestrationSetup = useCallback(() => {
localStorage.setItem(ORCHESTRATION_SETUP_DISMISSED_STORAGE_KEY, '1')
setShowOrchestrationSetup(false)
@ -285,6 +295,7 @@ export function FloatingTerminalPanel({
onPointerMove={handleDragMove}
onPointerUp={handleDragEnd}
onPointerCancel={handleDragEnd}
onDoubleClick={handleTitlebarDoubleClick}
>
<div className="flex h-full min-w-0 flex-1">
<TabBar