|
|
|
@ -1,6 +1,8 @@
|
|
|
|
|
package messeji
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"sync"
|
|
|
|
|
|
|
|
|
|
"github.com/hajimehoshi/ebiten/v2"
|
|
|
|
|
"github.com/hajimehoshi/ebiten/v2/inpututil"
|
|
|
|
|
"golang.org/x/image/font"
|
|
|
|
@ -24,6 +26,8 @@ type InputField struct {
|
|
|
|
|
|
|
|
|
|
// readBuffer is where incoming runes are stored before being added to the input buffer.
|
|
|
|
|
readBuffer []rune
|
|
|
|
|
|
|
|
|
|
sync.Mutex
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// NewInputField returns a new InputField. See type documentation for more info.
|
|
|
|
@ -68,13 +72,13 @@ func (f *InputField) SetSelectedFunc(selectedFunc func() (accept bool)) {
|
|
|
|
|
// Game.Update is called.
|
|
|
|
|
func (f *InputField) Update() error {
|
|
|
|
|
f.Lock()
|
|
|
|
|
defer f.Unlock()
|
|
|
|
|
|
|
|
|
|
if !f.visible || rectIsZero(f.r) {
|
|
|
|
|
return nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if !f.handleKeyboard {
|
|
|
|
|
f.Unlock()
|
|
|
|
|
return f.TextField.Update()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -123,6 +127,5 @@ func (f *InputField) Update() error {
|
|
|
|
|
f.bufferModified()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
f.Unlock()
|
|
|
|
|
return f.TextField.Update()
|
|
|
|
|
}
|
|
|
|
|