From 4a8ed1af2032b6524075ad925d288e5d103ce418 Mon Sep 17 00:00:00 2001 From: philmoz Date: Sun, 22 Feb 2026 11:07:12 +1100 Subject: [PATCH] fix(firmware): radio may crash after editing a number or text field in a popup dialog (#7115) --- radio/src/gui/colorlcd/libui/keyboard_base.cpp | 7 +++++++ radio/src/gui/colorlcd/libui/keyboard_base.h | 2 ++ 2 files changed, 9 insertions(+) diff --git a/radio/src/gui/colorlcd/libui/keyboard_base.cpp b/radio/src/gui/colorlcd/libui/keyboard_base.cpp index e6af3eb07..94a2e1c42 100644 --- a/radio/src/gui/colorlcd/libui/keyboard_base.cpp +++ b/radio/src/gui/colorlcd/libui/keyboard_base.cpp @@ -102,6 +102,13 @@ Keyboard::~Keyboard() if (group) lv_group_del(group); } +void Keyboard::deleteLater() +{ + if (!_deleted) + hide(false); + NavWindow::deleteLater(); +} + void Keyboard::clearField(bool wasCancelled) { TRACE("CLEAR FIELD"); diff --git a/radio/src/gui/colorlcd/libui/keyboard_base.h b/radio/src/gui/colorlcd/libui/keyboard_base.h index cf670073f..cc1fe38b7 100644 --- a/radio/src/gui/colorlcd/libui/keyboard_base.h +++ b/radio/src/gui/colorlcd/libui/keyboard_base.h @@ -36,6 +36,8 @@ class Keyboard : public NavWindow protected: static Keyboard *activeKeyboard; + void deleteLater() override; + lv_group_t* group = nullptr; lv_obj_t* keyboard = nullptr;