* 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)
| 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 |
nothing calls this directly
no test coverage detected