From d8677ca6d7e8968b7a226899e0dd7a0de272c160 Mon Sep 17 00:00:00 2001 From: Anis Ahmad Date: Fri, 15 Jan 2021 21:32:09 +0600 Subject: [PATCH] Fixed repeation of shortcut keys because of returning event even after executing shortcut --- app/cli.go | 22 ++++++++++------------ app/projects.go | 3 +++ app/task_detail.go | 8 ++++++++ app/tasks.go | 4 ++++ 4 files changed, 25 insertions(+), 12 deletions(-) diff --git a/app/cli.go b/app/cli.go index dfaaee5..3e30b91 100644 --- a/app/cli.go +++ b/app/cli.go @@ -89,6 +89,16 @@ func setKeyboardShortcuts() *tview.Application { return event } + // Global shortcuts + switch event.Rune() { + case 'p': + app.SetFocus(projectPane) + return nil + case 't': + app.SetFocus(taskPane) + return nil + } + // Handle based on current focus. Handlers may modify event switch { case projectPane.HasFocus(): @@ -99,18 +109,6 @@ func setKeyboardShortcuts() *tview.Application { event = taskDetailPane.handleShortcuts(event) } - // Global shortcuts - switch event.Rune() { - case 'p': - app.SetFocus(projectPane) - case 't': - app.SetFocus(taskPane) - case 'f': - // @TODO : Remove - // statusBar.showForSeconds(reflect.TypeOf(app.GetFocus()).String(), 5) - statusBar.showForSeconds(fmt.Sprintf("Due: %#v", taskPane.activeTask), 5) - } - return event }) } diff --git a/app/projects.go b/app/projects.go index 8adfec9..9c9c3b8 100644 --- a/app/projects.go +++ b/app/projects.go @@ -113,10 +113,13 @@ func (pane *ProjectPane) handleShortcuts(event *tcell.EventKey) *tcell.EventKey switch event.Rune() { case 'j': pane.list.SetCurrentItem(pane.list.GetCurrentItem() + 1) + return nil case 'k': pane.list.SetCurrentItem(pane.list.GetCurrentItem() - 1) + return nil case 'n': app.SetFocus(pane.newProject) + return nil } return event diff --git a/app/task_detail.go b/app/task_detail.go index 06a1100..e025dad 100644 --- a/app/task_detail.go +++ b/app/task_detail.go @@ -286,22 +286,30 @@ func (td *TaskDetailPane) handleShortcuts(event *tcell.EventKey) *tcell.EventKey switch event.Key() { case tcell.KeyEsc: app.SetFocus(taskPane) + return nil case tcell.KeyDown: td.taskDetailView.ScrollDown(1) + return nil case tcell.KeyUp: td.taskDetailView.ScrollUp(1) + return nil case tcell.KeyRune: switch event.Rune() { case 'e': td.activateEditor() + return nil case 'v': td.editInExternalEditor() + return nil case 'd': app.SetFocus(td.taskDate) + return nil case 'r': td.header.ShowRename() + return nil case ' ': td.toggleTaskStatus() + return nil } } diff --git a/app/tasks.go b/app/tasks.go index fe74a7f..8153b04 100644 --- a/app/tasks.go +++ b/app/tasks.go @@ -103,12 +103,16 @@ func (pane *TaskPane) handleShortcuts(event *tcell.EventKey) *tcell.EventKey { switch event.Rune() { case 'j': pane.list.SetCurrentItem(pane.list.GetCurrentItem() + 1) + return nil case 'k': pane.list.SetCurrentItem(pane.list.GetCurrentItem() - 1) + return nil case 'h': app.SetFocus(projectPane) + return nil case 'n': app.SetFocus(pane.newTask) + return nil } return event