diff --git a/radio/src/gui/colorlcd/widget.cpp b/radio/src/gui/colorlcd/widget.cpp index 400d99c0f..a2d2b1127 100644 --- a/radio/src/gui/colorlcd/widget.cpp +++ b/radio/src/gui/colorlcd/widget.cpp @@ -205,7 +205,13 @@ void registerWidget(const WidgetFactory * factory) if (oldWidget) { unregisterWidget(oldWidget); } - TRACE("register widget %s", name); + TRACE("register widget %s %s", name, factory->getDisplayName()); + for (auto it = getRegisteredWidgets().cbegin(); it != getRegisteredWidgets().cend(); ++it) { + if (strcmp((*it)->getDisplayName(), factory->getDisplayName()) > 0) { + getRegisteredWidgets().insert(it, factory); + return; + } + } getRegisteredWidgets().push_back(factory); }