Fixed three critical bugs preventing UITextInput from working:
1. **hitTest() missing textinput handler**: The hit test function only checked
for button, slider, and checkbox types. Clicks on text input fields were
never detected.
FIX: Added textinput case to hitTest() in UIContext.cpp
2. **dispatchMouseButton() missing textinput handler**: Even if hit test worked,
mouse button events were not dispatched to text input widgets.
FIX: Added textinput case to dispatchMouseButton() in UIContext.cpp
3. **Keyboard event collision**: SDL_KEYDOWN was publishing events for printable
characters with char=0, which were rejected by UITextInput. Printable chars
should only come from SDL_TEXTINPUT.
FIX: Only publish SDL_KEYDOWN for special keys (Backspace, Delete, arrows, etc.)
Printable characters come exclusively from SDL_TEXTINPUT events.
Changes:
- UIContext.cpp: Added textinput handlers to hitTest() and dispatchMouseButton()
- UITextInput.cpp: Added debug logging for gainFocus() and render()
- UIModule.cpp: Added debug logging for widget clicks
- test_ui_showcase.cpp: Fixed keyboard event handling (KEYDOWN vs TEXTINPUT)
Tested: Text input now gains focus (border turns blue), accepts keyboard input,
and displays typed text correctly.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>