Fixed repeation of shortcut keys because of returning event even after executing shortcut

This commit is contained in:
Anis Ahmad
2021-01-15 21:32:09 +06:00
parent 0c09a29550
commit d8677ca6d7
4 changed files with 25 additions and 12 deletions

View File

@@ -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
})
}

View File

@@ -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

View File

@@ -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
}
}

View File

@@ -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