clean up some key handling

This commit is contained in:
vilmibm 2023-01-26 12:02:51 -08:00
parent b4a6480c21
commit bcc0d2b838

View file

@ -494,8 +494,6 @@ func ExtBrowse(opts ExtBrowseOpts) error {
app.SetAfterDrawFunc(nil)
})
helpActive := false
// TODO filter should not be activated when helpActive is true
app.SetInputCapture(func(event *tcell.EventKey) *tcell.EventKey {
@ -503,40 +501,49 @@ func ExtBrowse(opts ExtBrowseOpts) error {
return event
}
curPage, _ := pages.GetFrontPage()
if curPage != "main" {
if event.Rune() == 'q' || event.Key() == tcell.KeyEscape {
pages.SwitchToPage("main")
return nil
}
switch curPage {
case "readme":
switch event.Key() {
case tcell.KeyPgUp:
row, col := readme.GetScrollOffset()
if row > 0 {
readme.ScrollTo(row-2, col)
}
case tcell.KeyPgDn:
row, col := readme.GetScrollOffset()
readme.ScrollTo(row+2, col)
}
case "help":
switch event.Rune() {
case '?':
pages.SwitchToPage("main")
}
}
return nil
}
switch event.Rune() {
case '?':
if helpActive {
pages.SwitchToPage("main")
helpActive = false
return nil
}
helpActive = true
pages.SwitchToPage("help")
return nil
case 'q':
if helpActive {
helpActive = false
pages.SwitchToPage("main")
return nil
}
app.Stop()
case 'k':
if helpActive {
return nil
}
extList.ScrollUp()
readme.SetText("...fetching readme...")
go loadSelectedReadme()
case 'j':
if helpActive {
return nil
}
extList.ScrollDown()
readme.SetText("...fetching readme...")
go loadSelectedReadme()
case 'w':
if helpActive {
return nil
}
ee, ix := extList.FindSelected()
if ix < 0 {
opts.Logger.Println("failed to find selected entry")
@ -547,19 +554,10 @@ func ExtBrowse(opts ExtBrowseOpts) error {
opts.Logger.Println(fmt.Errorf("could not open browser for '%s': %w", ee.URL, err))
}
case 'i':
if helpActive {
return nil
}
extList.InstallSelected()
case 'r':
if helpActive {
return nil
}
extList.RemoveSelected()
case ' ':
if helpActive {
return nil
}
// The shift check works on windows and not linux/mac:
if event.Modifiers()&tcell.ModShift != 0 {
extList.PageUp()
@ -568,70 +566,31 @@ func ExtBrowse(opts ExtBrowseOpts) error {
}
go loadSelectedReadme()
case '/':
if helpActive {
return nil
}
app.SetFocus(filter)
return nil
}
switch event.Key() {
case tcell.KeyUp:
if helpActive {
return nil
}
extList.ScrollUp()
go loadSelectedReadme()
return nil
case tcell.KeyDown:
if helpActive {
return nil
}
extList.ScrollDown()
go loadSelectedReadme()
return nil
case tcell.KeyEscape:
if helpActive {
helpActive = false
pages.SwitchToPage("main")
return nil
}
filter.SetText("")
extList.Reset()
case tcell.KeyCtrlSpace:
if helpActive {
return nil
}
// The ctrl check works on linux/mac and not windows:
extList.PageUp()
go loadSelectedReadme()
case tcell.KeyCtrlJ:
if helpActive {
return nil
}
extList.PageDown()
go loadSelectedReadme()
case tcell.KeyCtrlK:
if helpActive {
return nil
}
extList.PageUp()
go loadSelectedReadme()
case tcell.KeyPgUp:
if helpActive {
return nil
}
row, col := readme.GetScrollOffset()
if row > 0 {
readme.ScrollTo(row-2, col)
}
return nil
case tcell.KeyPgDn:
if helpActive {
return nil
}
row, col := readme.GetScrollOffset()
readme.ScrollTo(row+2, col)
return nil
}
return event