* 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)
| 1326 | * char-mode startSelection if the click lands on a noSelect cell. |
| 1327 | */ |
| 1328 | handleMultiClick(col: number, row: number, count: 2 | 3): void { |
| 1329 | if (!this.altScreenActive) return; |
| 1330 | const screen = this.frontFrame.screen; |
| 1331 | // selectWordAt/selectLineAt no-op on noSelect/out-of-bounds. Seed with |
| 1332 | // a char-mode selection so the press still starts a drag even if the |
| 1333 | // word/line scan finds nothing selectable. |
| 1334 | startSelection(this.selection, col, row); |
| 1335 | if (count === 2) selectWordAt(this.selection, screen, col, row);else selectLineAt(this.selection, screen, row); |
| 1336 | // Ensure hasSelection is true so release doesn't re-dispatch onClickAt. |
| 1337 | // selectWordAt no-ops on noSelect; selectLineAt no-ops out-of-bounds. |
| 1338 | if (!this.selection.focus) this.selection.focus = this.selection.anchor; |
| 1339 | this.notifySelectionChange(); |
| 1340 | } |
| 1341 | |
| 1342 | /** |
| 1343 | * Handle a drag-motion at (col, row). In char mode updates focus to the |
nothing calls this directly
no test coverage detected