summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app.go3
-rw-r--r--ui/editor.go12
-rw-r--r--ui/ui.go4
3 files changed, 18 insertions, 1 deletions
diff --git a/app.go b/app.go
index 57c12de..272cd40 100644
--- a/app.go
+++ b/app.go
@@ -320,7 +320,8 @@ func (app *App) handleMouseEvent(ev *tcell.EventMouse) {
func (app *App) handleKeyEvent(ev *tcell.EventKey) {
switch ev.Key() {
case tcell.KeyCtrlC:
- app.win.Exit()
+ app.win.InputClear()
+ app.typing()
case tcell.KeyCtrlL:
app.win.Resize()
case tcell.KeyCtrlU, tcell.KeyPgUp:
diff --git a/ui/editor.go b/ui/editor.go
index bf21f85..15785e8 100644
--- a/ui/editor.go
+++ b/ui/editor.go
@@ -164,6 +164,18 @@ func (e *Editor) Flush() (content string) {
return
}
+func (e *Editor) Clear() {
+ if e.TextLen() == 0 {
+ return
+ }
+ e.text[e.lineIdx] = []rune{}
+ e.textWidth = e.textWidth[:1]
+ e.cursorIdx = 0
+ e.offsetIdx = 0
+ e.autoCache = nil
+ return
+}
+
func (e *Editor) Right() {
e.right()
e.autoCache = nil
diff --git a/ui/ui.go b/ui/ui.go
index 0b45a3c..4ced9f0 100644
--- a/ui/ui.go
+++ b/ui/ui.go
@@ -228,6 +228,10 @@ func (ui *UI) InputEnter() (content string) {
return ui.e.Flush()
}
+func (ui *UI) InputClear() {
+ ui.e.Clear()
+}
+
func (ui *UI) Resize() {
w, h := ui.screen.Size()
ui.e.Resize(w - 9 - ui.config.ChanColWidth - ui.config.NickColWidth)