From 2d534a88cbe32b952f7f8dd9ec54e129727e5845 Mon Sep 17 00:00:00 2001 From: philmoz Date: Tue, 24 Jan 2023 11:57:28 +1100 Subject: [PATCH] fix(color): Fix infinite loop/crash with some uses of POPUP_WARNING/POPUP_INFORMATION (#3068) Prevent infinite loop and crash if POPUP_WARNING or POPUP_INFORMATION are used from within code that is called from a 'Menu' line button. --- radio/src/gui/colorlcd/popups.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/radio/src/gui/colorlcd/popups.cpp b/radio/src/gui/colorlcd/popups.cpp index 8671b62d4..dd7dec23a 100644 --- a/radio/src/gui/colorlcd/popups.cpp +++ b/radio/src/gui/colorlcd/popups.cpp @@ -26,6 +26,11 @@ static void _run_popup_dialog(const char* title, const char* msg, const char* info = nullptr) { bool running = true; + + // reset input devices to avoid + // RELEASED/CLICKED to be called in a loop + lv_indev_reset(nullptr, nullptr); + auto md = new MessageDialog(MainWindow::instance(), title, msg); md->setCloseHandler([&]() { running = false; }); if (info) {