X-Git-Url: http://git.scottworley.com/vopamoi/blobdiff_plain/3a1649301b207e07fcfa1eb0a617e4c5b2f775e8..997d8d55032aba314fa674c19ce25463af30c972:/vopamoi.ts diff --git a/vopamoi.ts b/vopamoi.ts index f624db1..5f759d0 100644 --- a/vopamoi.ts +++ b/vopamoi.ts @@ -297,9 +297,6 @@ function BrowserUI() { this.firstVisibleTask()?.focus(); } input.value = ""; - if (currentTagView) { - ui.addTag(task.getAttribute("data-created")!, currentTagView); - } if (event.getModifierState("Control")) { this.makeBottomPriority(task); } @@ -441,7 +438,19 @@ function BrowserUI() { task instanceof HTMLElement && task.focus(); }, - moveCursor: function (offset: number): boolean { + moveCursorLeft: function () { + const active = this.currentTask(); + if (!active) return false; + if (active.parentElement!.classList.contains("task")) { + active.parentElement!.focus(); + } + }, + + moveCursorRight: function () { + (this.currentTask()?.getElementsByClassName("task")[0] as HTMLElement)?.focus(); + }, + + moveCursorVertically: function (offset: number): boolean { const active = this.currentTask(); if (!active) return false; const dest = this.visibleTaskAtOffset(active, offset); @@ -517,15 +526,17 @@ function BrowserUI() { if (newState === oldState) return; const createTimestamp = task.getAttribute("data-created")!; if (currentViewState !== "all" || newState == "deleted") { - this.moveCursor(1) || this.moveCursor(-1); + this.moveCursorVertically(1) || this.moveCursorVertically(-1); } return ui.setState(createTimestamp, newState, oldState); }, - setTagView: function () { - const target = this.currentTag(); - if (!target) return; - const tag = target.textContent!; + setTagView: function (tag: string | null = null) { + if (tag === null) { + const target = this.currentTag(); + if (!target) return; + tag = target.textContent!; + } if (currentTagView !== null) { this.resetTagView(); @@ -641,8 +652,10 @@ function handleKey(event: any) { if (event.key == "e") return window.scrollBy(0, (inputCount ?? 1) * scrollIncrement); if (event.key == "y") return window.scrollBy(0, (inputCount ?? 1) * -scrollIncrement); } else { - if (event.key == "j") return browserUI.moveCursor(inputCount ?? 1); - if (event.key == "k") return browserUI.moveCursor(-(inputCount ?? 1)); + if (event.key == "h") return browserUI.moveCursorLeft(); + if (event.key == "l") return browserUI.moveCursorRight(); + if (event.key == "j") return browserUI.moveCursorVertically(inputCount ?? 1); + if (event.key == "k") return browserUI.moveCursorVertically(-(inputCount ?? 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); @@ -673,6 +686,7 @@ function handleKey(event: any) { if (event.key == "c") return browserUI.setView("cancelled"); if (event.key == "d") return browserUI.setView("done"); if (event.key == "i") return browserUI.setUntaggedView(); + if (event.key == "p") return browserUI.setTagView("Project"); if (event.key == "q") return browserUI.setView("todo"); if (event.key == "s") return (inputState = InputState.VS); if (event.key == "T") return browserUI.resetTagView();