diff --git a/radio/src/thirdparty/libopenui/src/choice.cpp b/radio/src/thirdparty/libopenui/src/choice.cpp index 26a93f53a..cd1ea8cb0 100644 --- a/radio/src/thirdparty/libopenui/src/choice.cpp +++ b/radio/src/thirdparty/libopenui/src/choice.cpp @@ -29,8 +29,10 @@ void choicePaintCallback(lv_event_t *e) lv_obj_t *target = lv_event_get_target(e); if (target != nullptr) { ChoiceBase *cb = (ChoiceBase*)lv_obj_get_user_data(target); - std::string text = cb->getLabelText(); - lv_label_set_text(cb->label, text.c_str()); + if (cb) { + std::string text = cb->getLabelText(); + lv_label_set_text(cb->label, text.c_str()); + } } } } diff --git a/radio/src/thirdparty/libopenui/src/menu.cpp b/radio/src/thirdparty/libopenui/src/menu.cpp index 6f638b686..87eaf91ba 100644 --- a/radio/src/thirdparty/libopenui/src/menu.cpp +++ b/radio/src/thirdparty/libopenui/src/menu.cpp @@ -31,19 +31,21 @@ void menuBodyEventCallback(lv_event_t *e) if (target != nullptr) { long index = (long)lv_event_get_user_data(e); MenuBody *mb = (MenuBody *) lv_obj_get_user_data(lv_obj_get_parent(target)); - Menu *menu = mb->getParentMenu(); - if (index < (int)mb->lines.size()) { - onKeyPress(); - if (menu->multiple) { - if (mb->selectedIndex == index) - mb->lines[index].onPress(); - else + if (mb) { + Menu *menu = mb->getParentMenu(); + if (index < (int)mb->lines.size()) { + onKeyPress(); + if (menu->multiple) { + if (mb->selectedIndex == index) + mb->lines[index].onPress(); + else + mb->setIndex(index); + } + else { mb->setIndex(index); - } - else { - mb->setIndex(index); - mb->lines[index].onPress(); - menu->deleteLater(); + mb->lines[index].onPress(); + menu->deleteLater(); + } } } }