Fix cursor problem in LetterPrompt

Fixes #300
This commit is contained in:
Zachary Yedidia 2016-09-04 11:19:53 -04:00
parent def5e29b91
commit 54a34001e3
2 changed files with 8 additions and 2 deletions

View file

@ -144,11 +144,14 @@ func (m *Messenger) LetterPrompt(prompt string, responses ...rune) (rune, bool)
case tcell.KeyRune:
for _, r := range responses {
if e.Rune() == r {
m.Clear()
m.Reset()
m.hasPrompt = false
return r, false
}
}
case tcell.KeyCtrlC, tcell.KeyCtrlQ, tcell.KeyEscape:
m.hasPrompt = false
return ' ', true
}
}
@ -242,18 +245,19 @@ func (m *Messenger) Prompt(prompt, historyType string, completionTypes ...Comple
m.HandleEvent(event, m.history[historyType])
messenger.Clear()
m.Clear()
for _, v := range tabs[curTab].views {
v.Display()
}
DisplayTabs()
messenger.Display()
m.Display()
if len(suggestions) > 1 {
m.DisplaySuggestions(suggestions)
}
screen.Show()
}
m.Clear()
m.Reset()
return response, canceled
}

View file

@ -172,6 +172,8 @@ func (v *View) ScrollDown(n int) {
func (v *View) CanClose(msg string, responses ...rune) bool {
if v.Buf.IsModified {
char, canceled := messenger.LetterPrompt("You have unsaved changes. "+msg, responses...)
messenger.Clear()
messenger.Reset()
if !canceled {
if char == 'y' {
return true