MCPcopy Create free account
hub / github.com/Noumena-Network/code / handleMultiClick

Method handleMultiClick

src/ink/ink.tsx:1481–1493  ·  view source on GitHub ↗

* Handle a double- or triple-click at (col, row): select the word or * line under the cursor by reading the current screen buffer. Called on * PRESS (not release) so the highlight appears immediately and drag can * extend the selection word-by-word / line-by-line. Falls back to * char-mo

(col: number, row: number, count: 2 | 3)

Source from the content-addressed store, hash-verified

1479 * char-mode startSelection if the click lands on a noSelect cell.
1480 */
1481 handleMultiClick(col: number, row: number, count: 2 | 3): void {
1482 if (!this.altScreenActive) return;
1483 const screen = this.frontFrame.screen;
1484 // selectWordAt/selectLineAt no-op on noSelect/out-of-bounds. Seed with
1485 // a char-mode selection so the press still starts a drag even if the
1486 // word/line scan finds nothing selectable.
1487 startSelection(this.selection, col, row);
1488 if (count === 2) selectWordAt(this.selection, screen, col, row);else selectLineAt(this.selection, screen, row);
1489 // Ensure hasSelection is true so release doesn't re-dispatch onClickAt.
1490 // selectWordAt no-ops on noSelect; selectLineAt no-ops out-of-bounds.
1491 if (!this.selection.focus) this.selection.focus = this.selection.anchor;
1492 this.notifySelectionChange();
1493 }
1494
1495 /**
1496 * Handle a drag-motion at (col, row). In char mode updates focus to the

Callers

nothing calls this directly

Calls 4

notifySelectionChangeMethod · 0.95
startSelectionFunction · 0.85
selectWordAtFunction · 0.85
selectLineAtFunction · 0.85

Tested by

no test coverage detected