Add input logging
This commit is contained in:
@@ -11,6 +11,7 @@ import (
|
||||
"rhemawavetech.com/rhemawave/internal/colors"
|
||||
"rhemawavetech.com/rhemawave/internal/db"
|
||||
"rhemawavetech.com/rhemawave/internal/fontManager"
|
||||
"rhemawavetech.com/rhemawave/internal/logger"
|
||||
"rhemawavetech.com/rhemawave/internal/shaderManager"
|
||||
)
|
||||
|
||||
@@ -111,7 +112,9 @@ func (p *EmailAddressPage) Init(app ApplicationInterface) error {
|
||||
p.isFirstTimeSetup = true
|
||||
}
|
||||
|
||||
logger.Info("[EmailAddressPage.Init] Calling sdl.StartTextInput(), isFirstTimeSetup=%v", p.isFirstTimeSetup)
|
||||
sdl.StartTextInput()
|
||||
logger.Info("[EmailAddressPage.Init] After StartTextInput: IsTextInputActive=%v", sdl.IsTextInputActive())
|
||||
|
||||
return nil
|
||||
}
|
||||
@@ -119,19 +122,34 @@ func (p *EmailAddressPage) Init(app ApplicationInterface) error {
|
||||
// HandleEvent processes SDL events and handles them appropriately for the EmailAddressPage.
|
||||
func (p *EmailAddressPage) HandleEvent(event *sdl.Event) error {
|
||||
actualEvent := *event
|
||||
if !sdl.IsTextInputActive() {
|
||||
logger.Info("[EmailAddressPage.HandleEvent] Event type: %T", actualEvent)
|
||||
|
||||
isActive := sdl.IsTextInputActive()
|
||||
if !isActive {
|
||||
logger.Info("[EmailAddressPage.HandleEvent] TextInput not active, calling StartTextInput()")
|
||||
sdl.StartTextInput()
|
||||
logger.Info("[EmailAddressPage.HandleEvent] After StartTextInput: IsTextInputActive=%v", sdl.IsTextInputActive())
|
||||
}
|
||||
|
||||
switch e := actualEvent.(type) {
|
||||
case *sdl.TextInputEvent:
|
||||
p.inputText += e.GetText()
|
||||
text := e.GetText()
|
||||
p.inputText += text
|
||||
logger.Info("[EmailAddressPage.HandleEvent] TextInputEvent: received=%q, inputText=%q", text, p.inputText)
|
||||
// Clear error when user starts typing
|
||||
p.errorMessage = ""
|
||||
case *sdl.KeyboardEvent:
|
||||
eventType := "KEYDOWN"
|
||||
if e.Type == sdl.KEYUP {
|
||||
eventType = "KEYUP"
|
||||
}
|
||||
logger.Info("[EmailAddressPage.HandleEvent] KeyboardEvent: type=%s, sym=%d (%s), scancode=%d, mod=0x%04x",
|
||||
eventType, e.Keysym.Sym, sdl.GetKeyName(e.Keysym.Sym), e.Keysym.Scancode, e.Keysym.Mod)
|
||||
|
||||
if e.Type == sdl.KEYDOWN {
|
||||
switch e.Keysym.Sym {
|
||||
case sdl.K_ESCAPE:
|
||||
logger.Info("[EmailAddressPage.HandleEvent] ESCAPE pressed, isFirstTimeSetup=%v", p.isFirstTimeSetup)
|
||||
// Block escape during first-time setup
|
||||
if p.isFirstTimeSetup {
|
||||
return nil
|
||||
@@ -140,6 +158,7 @@ func (p *EmailAddressPage) HandleEvent(event *sdl.Event) error {
|
||||
sdl.StopTextInput()
|
||||
p.App.UnwindToPage(&Settings{})
|
||||
case sdl.K_RETURN:
|
||||
logger.Info("[EmailAddressPage.HandleEvent] RETURN pressed, inputText=%q", p.inputText)
|
||||
// Validate email - check empty first, then format
|
||||
if p.inputText == "" {
|
||||
p.errorMessage = "Email address cannot be empty"
|
||||
@@ -167,6 +186,7 @@ func (p *EmailAddressPage) HandleEvent(event *sdl.Event) error {
|
||||
case sdl.K_BACKSPACE:
|
||||
if len(p.inputText) > 0 {
|
||||
p.inputText = p.inputText[:len(p.inputText)-1]
|
||||
logger.Info("[EmailAddressPage.HandleEvent] BACKSPACE: inputText=%q", p.inputText)
|
||||
// Clear error when user edits input
|
||||
p.errorMessage = ""
|
||||
}
|
||||
@@ -390,6 +410,7 @@ func (p *EmailAddressPage) Destroy() error {
|
||||
p.errorTextureID = 0
|
||||
}
|
||||
|
||||
logger.Info("[EmailAddressPage.Destroy] Calling sdl.StopTextInput()")
|
||||
sdl.StopTextInput()
|
||||
return p.Base.Destroy()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user