MCPcopy Index your code
hub / github.com/codeaashu/claude-code / drag

Function drag

src/utils/computerUse/executor.ts:579–594  ·  view source on GitHub ↗

* `from === undefined` → drag from current cursor (training's * left_click_drag with start_coordinate omitted). Inner `finally`: the * button is ALWAYS released even if the move throws — otherwise the * user's left button is stuck-pressed until they physically click. * 50ms sleep

(
      from: { x: number; y: number } | undefined,
      to: { x: number; y: number },
    )

Source from the content-addressed store, hash-verified

577 * needs a HID-tap round-trip to show up there.
578 */
579 async drag(
580 from: { x: number; y: number } | undefined,
581 to: { x: number; y: number },
582 ): Promise<void> {
583 const input = requireComputerUseInput()
584 if (from !== undefined) {
585 await moveAndSettle(input, from.x, from.y)
586 }
587 await input.mouseButton('left', 'press')
588 await sleep(MOVE_SETTLE_MS)
589 try {
590 await animatedMove(input, to.x, to.y, getMouseAnimationEnabled())
591 } finally {
592 await input.mouseButton('left', 'release')
593 }
594 },
595
596 /**
597 * Move first, then scroll each axis. Vertical-first — it's the common

Callers

nothing calls this directly

Calls 4

requireComputerUseInputFunction · 0.85
moveAndSettleFunction · 0.85
animatedMoveFunction · 0.85
sleepFunction · 0.50

Tested by

no test coverage detected