clean up some key handling
This commit is contained in:
parent
b4a6480c21
commit
bcc0d2b838
1 changed files with 29 additions and 70 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue