We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
I built the following test app:
... line1 := make([]gowid.IWidget, 0) line2 := make([]gowid.IWidget, 0) line3 := make([]gowid.IWidget, 0) text1 := text.New("line1 item0") text1h := holder.New(text1) text1s := styled.NewWithRanges(text1h, []styled.AttributeRange{styled.AttributeRange{0, -1, gowid.MakePaletteRef("test1notfocus")}}, []styled.AttributeRange{styled.AttributeRange{0, -1, gowid.MakePaletteRef("streak")}}) btn1 := button.New(text1s) line1 = append(line1, btn1) for i := 1; i < 5; i++ { txt := text.New(fmt.Sprintf("line1 item%d", i)) line1 = append(line1, txt) } text2 := text.New("line2 item0") text2h := holder.New(text2) text2s := styled.NewWithRanges(text2h, []styled.AttributeRange{styled.AttributeRange{0, -1, gowid.MakePaletteRef("test1notfocus")}}, []styled.AttributeRange{styled.AttributeRange{0, -1, gowid.MakePaletteRef("streak")}}) btn2 := button.New(text2s) line2 = append(line2, btn2) for i := 1; i < 5; i++ { txt := text.New(fmt.Sprintf("line2 item%d", i)) line2 = append(line2, txt) } text3 := text.New("line3 item0") text3h := holder.New(text3) text3s := styled.NewWithRanges(text3h, []styled.AttributeRange{styled.AttributeRange{0, -1, gowid.MakePaletteRef("test1notfocus")}}, []styled.AttributeRange{styled.AttributeRange{0, -1, gowid.MakePaletteRef("streak")}}) btn3 := button.New(text3s) line3 = append(line3, btn3) for i := 1; i < 5; i++ { txt := text.New(fmt.Sprintf("line3 item%d", i)) line3 = append(line3, txt) } gfwids1 := []gowid.IWidget{line1[0], line1[1], line1[2], line1[3], line1[4]} grid1 := grid.New(gfwids1, 15, 3, 1, gowid.HAlignMiddle{}) gfwids2 := []gowid.IWidget{line2[0], line2[1], line2[2], line2[3], line2[4]} grid2 := grid.New(gfwids2, 15, 3, 1, gowid.HAlignMiddle{}) gfwids3 := []gowid.IWidget{line3[0], line3[1], line3[2], line3[3], line3[4]} grid3 := grid.New(gfwids3, 15, 3, 1, gowid.HAlignMiddle{}) grids := make([]gowid.IWidget, 0) grids = append(grids, grid1) grids = append(grids, grid2) grids = append(grids, grid3) walker := list.NewSimpleListWalker(grids) lb := list.New(walker) pw := vpadding.New(lb, gowid.VAlignTop{}, gowid.RenderFlow{}) app, err = gowid.NewApp(gowid.AppArgs{ View: pw, Palette: &palette, Log: log.StandardLogger(), }) app.SimpleMainLoop()
If I start it and press "up" or "down" key - it crashes the following way:
panic: runtime error: integer divide by zero goroutine 1 [running]: github.com/gcla/gowid/widgets/grid.GenerateWidgets({0x5f7ce0, 0xc00021a000}, {0x5b06a0, 0x6c9460}, {0x5f5c58, 0xc00014a580}) /home/peter/go/pkg/mod/github.com/gcla/[email protected]/widgets/grid/grid.go:408 +0x1098 github.com/gcla/gowid/widgets/grid.(*Widget).GenerateWidgets(0xc00021a000, {0x5b06a0, 0x6c9460}, {0x5f5c58, 0xc00014a580}) /home/peter/go/pkg/mod/github.com/gcla/[email protected]/widgets/grid/grid.go:210 +0x65 github.com/gcla/gowid/widgets/grid.UserInput({0x5f7ce0, 0xc00021a000}, {0x5a9680, 0xc00029f4e0}, {0x5b06a0, 0x6c9460}, {0x1, 0x1}, {0x5f8108, 0xc00014a580}) /home/peter/go/pkg/mod/github.com/gcla/[email protected]/widgets/grid/grid.go:326 +0x7ed github.com/gcla/gowid/widgets/grid.(*Widget).UserInput(0xc00021a000, {0x5a9680, 0xc00029f4e0}, {0x5b06a0, 0x6c9460}, {0x1, 0x1}, {0x5f8108, 0xc00014a580}) /home/peter/go/pkg/mod/github.com/gcla/[email protected]/widgets/grid/grid.go:206 +0x98 github.com/gcla/gowid.UserInputIfSelectable({0x5f61f8, 0xc00021a000}, {0x5a9680, 0xc00029f4e0}, {0x5b06a0, 0x6c9460}, {0x1, 0x1}, {0x5f8108, 0xc00014a580}) /home/peter/go/pkg/mod/github.com/gcla/[email protected]/support.go:793 +0xb3 github.com/gcla/gowid/widgets/list.(*Widget).UserInput(0xc0001d7960, {0x5a9680, 0xc00029f4e0}, {0x5b06a0, 0x6c9790}, {0x1, 0x1}, {0x5f8108, 0xc00014a580}) /home/peter/go/pkg/mod/github.com/gcla/[email protected]/widgets/list/list.go:717 +0x709 github.com/gcla/gowid.UserInputIfSelectable({0x5f62a0, 0xc0001d7960}, {0x5a9680, 0xc00029f4e0}, {0x5b06a0, 0x6c9790}, {0x1, 0x1}, {0x5f8108, 0xc00014a580}) /home/peter/go/pkg/mod/github.com/gcla/[email protected]/support.go:793 +0xb3 github.com/gcla/gowid/widgets/vpadding.UserInput({0x5f74c0, 0xc000114410}, {0x5a9680, 0xc00029f4e0}, {0x5b4000, 0xc0002a9bd0}, {0x1, 0x1}, {0x5f8108, 0xc00014a580}) /home/peter/go/pkg/mod/github.com/gcla/[email protected]/widgets/vpadding/vpadding.go:285 +0x45e github.com/gcla/gowid/widgets/vpadding.(*Widget).UserInput(0xc000114410, {0x5a9680, 0xc00029f4e0}, {0x5b4000, 0xc0002a9bd0}, {0x1, 0x1}, {0x5f8108, 0xc00014a580}) /home/peter/go/pkg/mod/github.com/gcla/[email protected]/widgets/vpadding/vpadding.go:124 +0x98 github.com/gcla/gowid.UserInputIfSelectable({0x5f6348, 0xc000114410}, {0x5a9680, 0xc00029f4e0}, {0x5b4000, 0xc0002a9bd0}, {0x1, 0x1}, {0x5f8108, 0xc00014a580}) /home/peter/go/pkg/mod/github.com/gcla/[email protected]/support.go:793 +0xb3 github.com/gcla/gowid.(*App).handleInputEvent(0xc00014a580, {0x5a9680, 0xc00029f4e0}, {0x5f4500, 0x708e90}) /home/peter/go/pkg/mod/github.com/gcla/[email protected]/app.go:665 +0x185 github.com/gcla/gowid.(*App).HandleTCellEvent(0xc00014a580, {0x5a9680, 0xc00029f4e0}, {0x5f4500, 0x708e90}) /home/peter/go/pkg/mod/github.com/gcla/[email protected]/app.go:469 +0x945 github.com/gcla/gowid.(*App).handleEvents(0xc00014a580, {0x5f4500, 0x708e90}) /home/peter/go/pkg/mod/github.com/gcla/[email protected]/app.go:648 +0x145 github.com/gcla/gowid.(*App).MainLoop(0xc00014a580, {0x5f4500, 0x708e90}) /home/peter/go/pkg/mod/github.com/gcla/[email protected]/app.go:629 +0x12d main.main() /usr/home/peter/Programming/golang/test1/test1.go:214 +0x2afb End Process exit status 2
The text was updated successfully, but these errors were encountered:
I've just tried the last git version - the same thing (crash at widgets/grid/grid.go:407)
Sorry, something went wrong.
Thanks @Peter2121 , I'll look at this ASAP.
Hi @Peter2121 - I reproduced your crash from your full example above. Sorry it's not fixed yet, but I'll try to get something pushed very soon.
Workaround:
gline := grid.New(line, width, hpad, vpad, gowid.HAlignMiddle{}, grid.Options{ DownKeys: []vim.KeyPress{}, UpKeys: []vim.KeyPress{}, })
So, up/down keys are not processed by grid widget.
No branches or pull requests
I built the following test app:
If I start it and press "up" or "down" key - it crashes the following way:
The text was updated successfully, but these errors were encountered: