From 6fe19b2bfda140783093b447768f0f0f209d86c5 Mon Sep 17 00:00:00 2001 From: philmoz Date: Fri, 18 Sep 2026 10:09:03 +1000 Subject: [PATCH] fix(color): popup menu toolbar may be clipped if only two entries (#7801) --- radio/src/gui/colorlcd/libui/menu.cpp | 2 +- radio/src/gui/colorlcd/libui/menu.h | 1 - radio/src/gui/colorlcd/libui/menutoolbar.cpp | 2 ++ 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/radio/src/gui/colorlcd/libui/menu.cpp b/radio/src/gui/colorlcd/libui/menu.cpp index 97471a0af..5c37f0b4c 100644 --- a/radio/src/gui/colorlcd/libui/menu.cpp +++ b/radio/src/gui/colorlcd/libui/menu.cpp @@ -374,7 +374,7 @@ void Menu::updatePosition() coord_t cw = lv_obj_get_width(content->getLvObj()); coord_t ch = lv_obj_get_height(content->getLvObj()); coord_t tw = lv_obj_get_width(toolbar->getLvObj()); - coord_t th = lv_obj_get_height(toolbar->getLvObj()); + coord_t th = max((coord_t)lv_obj_get_height(toolbar->getLvObj()), toolbar->height()); lv_obj_align(toolbar->getLvObj(), LV_ALIGN_CENTER, -cw / 2, 0); lv_obj_align(content->getLvObj(), LV_ALIGN_CENTER, tw / 2, 0); diff --git a/radio/src/gui/colorlcd/libui/menu.h b/radio/src/gui/colorlcd/libui/menu.h index 10d7f99b1..1d83122ac 100644 --- a/radio/src/gui/colorlcd/libui/menu.h +++ b/radio/src/gui/colorlcd/libui/menu.h @@ -21,7 +21,6 @@ #include "modal_window.h" class MaskBitmap; -class Menu; class MenuWindowContent; class MenuToolbar; diff --git a/radio/src/gui/colorlcd/libui/menutoolbar.cpp b/radio/src/gui/colorlcd/libui/menutoolbar.cpp index 7cfb25497..2d55ab304 100644 --- a/radio/src/gui/colorlcd/libui/menutoolbar.cpp +++ b/radio/src/gui/colorlcd/libui/menutoolbar.cpp @@ -180,6 +180,8 @@ void MenuToolbar::addButton(const char* picto, int16_t filtermin, rect_t r = getButtonRect(wideButton); auto button = new MenuToolbarButton(this, r, picto); + setHeight(r.y + r.h + PAD_LARGE); + button->setPressHandler(std::bind(&MenuToolbar::filterMenu, this, button, filtermin, filtermax, filterFunc, title));