X-Git-Url: http://git.scottworley.com/vopamoi/blobdiff_plain/36fa06f4ee3f58be1677a326c38731553f0f3995..40025d1248bf8a26e5f25d2720f9411a5fa1ded3:/vopamoi.ts diff --git a/vopamoi.ts b/vopamoi.ts index 3ccc562..7d2f3ee 100644 --- a/vopamoi.ts +++ b/vopamoi.ts @@ -378,6 +378,13 @@ function BrowserUI() { return valid_cursor; }, + jumpCursor: function (position: number) { + const first = this.firstVisibleTask(); + if (!first) return; + const dest = this.visibleTaskAtOffset(first, position - 1); + if (dest instanceof HTMLElement) dest.focus(); + }, + makeTopPriority: function (task: Element | null = null) { if (!task) task = document.activeElement; if (!task) return; @@ -492,6 +499,7 @@ var inputState = InputState.Root; var inputCount: number | null = null; function handleKey(event: any) { + if (["Alt", "Control", "Meta", "Shift"].includes(event.key)) return; if (event.target.tagName === "INPUT") { if (event.target.id === "taskName") { if (event.key == "Enter") return browserUI.addTask(event); @@ -511,8 +519,9 @@ function handleKey(event: any) { try { if (event.key == "j") return browserUI.moveCursor(inputCount ?? 1); if (event.key == "k") return browserUI.moveCursor(-(inputCount ?? 1)); - if (event.key == "J") return browserUI.moveTask(1); - if (event.key == "K") return browserUI.moveTask(-1); + if (event.key == "J") return browserUI.moveTask(inputCount ?? 1); + if (event.key == "K") return browserUI.moveTask(-(inputCount ?? 1)); + if (event.key == "G") return browserUI.jumpCursor(inputCount ?? MAX_SAFE_INTEGER); if (event.key == "T") return browserUI.makeTopPriority(); if (event.key == "n") return browserUI.focusTaskNameInput(event); if (event.key == "c") return browserUI.setState("cancelled");