From 91f3afd517276f2db23c89eda5cf91790ce16a47 Mon Sep 17 00:00:00 2001 From: NeilClack Date: Sat, 27 Jun 2026 01:08:55 -0500 Subject: [PATCH] Potentially fixed text input on kiosk machine --- internal/download/Download.go | 2 +- internal/page/page.go | 2 -- internal/page/wifiSetupPage.go | 21 +++++++-------------- 3 files changed, 8 insertions(+), 17 deletions(-) diff --git a/internal/download/Download.go b/internal/download/Download.go index b035285..7f04459 100644 --- a/internal/download/Download.go +++ b/internal/download/Download.go @@ -103,7 +103,7 @@ func DownloadAudioFiles(progressChan chan<- DownloadStatus, filenames []string, } else if err != nil { logger.Error("unknown error: %v", err) } else { - logger.Error("File %s exists, skipping...", filename) + logger.Warning("File %s exists, skipping...", filename) totalDownloaded += fileStat.Size() } // Calculate the total of ALL files to give the illusion of diff --git a/internal/page/page.go b/internal/page/page.go index b3dfb81..8528d53 100644 --- a/internal/page/page.go +++ b/internal/page/page.go @@ -7,7 +7,6 @@ import ( "github.com/go-gl/gl/v3.3-core/gl" "github.com/go-gl/mathgl/mgl32" "github.com/veandco/go-sdl2/sdl" - "rhemawavetech.com/rhemawave/internal/logger" "rhemawavetech.com/rhemawave/internal/shaderManager" ) @@ -198,7 +197,6 @@ func keycodeToChar(sym sdl.Keycode, mod uint16) rune { if shifted { ch -= 'a' - 'A' } - logger.Info("Wifi Password entered: %v", ch) return ch } diff --git a/internal/page/wifiSetupPage.go b/internal/page/wifiSetupPage.go index 0c544ad..23abd7a 100644 --- a/internal/page/wifiSetupPage.go +++ b/internal/page/wifiSetupPage.go @@ -130,22 +130,12 @@ func (p *WiFiSetupPage) startScan() { func (p *WiFiSetupPage) HandleEvent(event *sdl.Event) error { switch e := (*event).(type) { - - case *sdl.TextInputEvent: - // SDL fires TextInputEvent for every printable character typed. - // This is the correct SDL2 way — no manual keycode mapping needed. - if p.isEnteringPassword { - p.textInputSupported = true - p.passwordInput += e.GetText() - p.rebuildPasswordTexture() - } - case *sdl.KeyboardEvent: if e.Type != sdl.KEYDOWN { return nil } if p.isEnteringPassword { - p.handlePasswordKey(e.Keysym.Sym) + p.handlePasswordKey(e.Keysym.Sym, e.Keysym.Mod) } else { p.handleNavKey(e.Keysym.Sym) } @@ -153,23 +143,26 @@ func (p *WiFiSetupPage) HandleEvent(event *sdl.Event) error { return nil } -func (p *WiFiSetupPage) handlePasswordKey(sym sdl.Keycode) { +func (p *WiFiSetupPage) handlePasswordKey(sym sdl.Keycode, mod uint16) { switch sym { case sdl.K_RETURN: p.submitPassword() - case sdl.K_BACKSPACE: if len(p.passwordInput) > 0 { runes := []rune(p.passwordInput) p.passwordInput = string(runes[:len(runes)-1]) p.rebuildPasswordTexture() } - case sdl.K_ESCAPE: logger.Info("wifi: password entry cancelled") p.exitPasswordMode() p.connectError = "" p.selectedNet = nil + default: + if ch := keycodeToChar(sym, mod); ch != 0 { + p.passwordInput += string(ch) + p.rebuildPasswordTexture() + } } }