diff --git a/declarative/lineedit.go b/declarative/lineedit.go index fcbb69a57..733a579c7 100644 --- a/declarative/lineedit.go +++ b/declarative/lineedit.go @@ -61,6 +61,7 @@ type LineEdit struct { OnEditingFinished walk.EventHandler OnTextChanged walk.EventHandler PasswordMode bool + PasswordChar rune ReadOnly Property Text Property TextColor walk.Color @@ -89,7 +90,15 @@ func (le LineEdit) Create(builder *Builder) error { } } w.SetMaxLength(le.MaxLength) - w.SetPasswordMode(le.PasswordMode) + passwordMode := rune(0) + if le.PasswordMode { + if le.PasswordChar != 0 { + passwordMode = le.PasswordChar + } else { + passwordMode = -1 + } + } + w.SetPasswordMode(passwordMode) if err := w.SetCaseMode(walk.CaseMode(le.CaseMode)); err != nil { return err diff --git a/lineedit.go b/lineedit.go index e8c9cd9e4..b4dc1ebc4 100644 --- a/lineedit.go +++ b/lineedit.go @@ -215,9 +215,9 @@ func (le *LineEdit) PasswordMode() bool { return le.SendMessage(win.EM_GETPASSWORDCHAR, 0, 0) != 0 } -func (le *LineEdit) SetPasswordMode(value bool) { - var c uintptr - if value { +func (le *LineEdit) SetPasswordMode(value rune) { + c := uintptr(value) + if value == -1 { c = uintptr('*') }