Help capturing keyboard inputs
Hi
I want to capture key strokes only when canvas is clicked/active. I tried this and does't work.
```
var texture *g.Texture
var text = "Hello, Gopher!"
var canvasClicked bool
func loop() {
g.SingleWindow().Layout(
g.Label("Canvas demo"),
g.Custom(func() {
canvasClicked = g.IsItemClicked(g.MouseButtonLeft)
canvas := g.GetCanvas()
pos := g.GetCursorScreenPos()
p1 := image.Point{X: pos.X + 0, Y: pos.Y + 0}
p2 := image.Point{X: pos.X + 600, Y: pos.Y + 100}
canvas.AddRectFilled(p1, p2, color.RGBA{R: 200, G: 200, B: 200, A: 255}, 0.2, g.DrawFlagsNone)
g.SetCursorScreenPos(image.Point{X: pos.X, Y: pos.Y + 100})
}),
g.InputTextMultiline(&text).Size(-1, 100),
)
}
func main() {
wnd := g.NewMasterWindow("Canvas", 600, 600, g.MasterWindowFlagsNotResizable)
img, _ := g.LoadImage("gopher.png")
g.EnqueueNewTextureFromRgba(img, func(tex *g.Texture) {
texture = tex
})
wnd.SetAdditionalInputHandlerCallback(func(key g.Key, mod g.Modifier, act g.Action) {
if canvasClicked {
fmt.Println(key, mod, act)
}
})
wnd.Run(loop)
}
```
Thanks
Jasmeer
2 条评论