mirror of
https://github.com/MarekZegare4/MeshCore-Solo.git
synced 2026-07-26 14:58:12 +00:00
UITask::newMsg() (fired for every incoming DM/channel message) triggers a 3s "Msg: <sender>" overlay drawn on top of whatever screen is current -- including the shared KeyboardWidget when it's occupying the full screen for text entry (message compose, room/repeater password, channel name, device name, admin custom command, ...). A message arriving mid-typing blanked out the letter grid for the full 3s with no way to see what was being typed. KeyboardWidget now tracks whether it was actually rendered this frame (_visible, set at the top of render(), cleared by the new beginFrame()). UITask's render loop calls _kb.beginFrame() before curr->render() and skips the alert overlay when the keyboard turned out to be what got drawn -- covers every screen that shares _kb, not just message compose. The alert itself is unaffected (still fires, still expires after 3s) -- it just doesn't draw over the keyboard. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>