Fix backspace handling on Android.

This commit is contained in:
Greg Pomerantz 2026-06-05 14:19:01 -04:00
parent 5a92ee9df3
commit b224bbe85a
2 changed files with 13 additions and 2 deletions

View File

@ -120,11 +120,16 @@ func run(w *app.Window) error {
})
}
case key.EditEvent:
log.Printf("edit event: %v", k.Text)
log.Printf("edit event text: %q", k.Text)
events = append(events, ui.InputEvent{
Handler: reg.Handler,
Data: k,
})
case key.SnippetEvent:
log.Printf("snippet event: %v", k)
// Handle snippet event if necessary, or ignore
default:
log.Printf("unexpected event type: %T", k)
}
}
}

View File

@ -300,11 +300,16 @@ func HandleCursorMove(delta int) {
// HandleKeyDown interprets keyboard events for navigation and editing.
// Receives both key.Event (as key.Name) and key.EditEvent from the main loop.
func HandleKeyDown(data any) {
log.Printf("HandleKeyDown: received data of type %T: %v", data, data)
switch v := data.(type) {
case key.EditEvent:
// Text input from IME / keyboard
log.Printf("HandleKeyDown: EditEvent text=%q", v.Text)
HandleInsert(v.Text)
if v.Text == "\b" || len(v.Text) == 0 {
HandleBackspace()
} else {
HandleInsert(v.Text)
}
case key.Name:
log.Printf("HandleKeyDown: name=%q", v)
switch v {
@ -553,6 +558,7 @@ func HandleInsert(s string) {
// HandleBackspace removes the character before the cursor.
func HandleBackspace() {
log.Printf("HandleBackspace: CursorPosition=%d", TheState.Editor.CursorPosition)
pos := TheState.Editor.CursorPosition
if pos == 0 {
return