feat: double click floating terminal titlebar (#1957)
This commit is contained in:
parent
6d8c835dd4
commit
a92da4b1a2
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue