summaryrefslogtreecommitdiff
path: root/lineedit.go
diff options
context:
space:
mode:
Diffstat (limited to 'lineedit.go')
-rw-r--r--lineedit.go14
1 files changed, 14 insertions, 0 deletions
diff --git a/lineedit.go b/lineedit.go
index 56ac97c..a45a443 100644
--- a/lineedit.go
+++ b/lineedit.go
@@ -2,8 +2,13 @@
package ui
+import (
+ "sync"
+)
+
// A LineEdit is a control which allows you to enter a single line of text.
type LineEdit struct {
+ lock sync.Mutex
created bool
sysData *sysData
initText string
@@ -28,6 +33,9 @@ func NewPasswordEdit() *LineEdit {
// SetText sets the LineEdit's text.
func (l *LineEdit) SetText(text string) {
+ l.lock.Lock()
+ defer l.lock.Unlock()
+
if l.created {
l.sysData.setText(text)
return
@@ -37,6 +45,9 @@ func (l *LineEdit) SetText(text string) {
// Text returns the LineEdit's text.
func (l *LineEdit) Text() string {
+ l.lock.Lock()
+ defer l.lock.Unlock()
+
if l.created {
return l.sysData.text()
}
@@ -44,6 +55,9 @@ func (l *LineEdit) Text() string {
}
func (l *LineEdit) make(window *sysData) error {
+ l.lock.Lock()
+ defer l.lock.Unlock()
+
l.sysData.alternate = l.password
err := l.sysData.make(window)
if err != nil {