diff --git a/radio/src/thirdparty/libopenui/src/carousel.cpp b/radio/src/thirdparty/libopenui/src/carousel.cpp index 5495ba000..81c383071 100644 --- a/radio/src/thirdparty/libopenui/src/carousel.cpp +++ b/radio/src/thirdparty/libopenui/src/carousel.cpp @@ -25,7 +25,7 @@ void CarouselWindow::update() first = max(0, first); coord_t lastPosition = 0; coord_t spacing = 10; - if (count > 1) + if (items.size() > 0 && count > 0) spacing = (width() - items[0]->back->width() * (count - 1) - items[0]->front->width()) / (count - 1); int index = 0; diff --git a/radio/src/thirdparty/libopenui/src/carousel.h b/radio/src/thirdparty/libopenui/src/carousel.h index 661fa58b5..613548e9f 100644 --- a/radio/src/thirdparty/libopenui/src/carousel.h +++ b/radio/src/thirdparty/libopenui/src/carousel.h @@ -55,7 +55,7 @@ class CarouselWindow: public Window { } - void deleteLater(bool detach = true, bool trash = true) override + void deleteLater(bool detach = true, bool trash = true) override // NOLINT(google-default-arguments) { if (_deleted) return; @@ -86,9 +86,11 @@ class CarouselWindow: public Window void select(int index, bool scroll = true) { selection = index; - auto item = items[selection]; - if (item->selectHandler) { - item->selectHandler(); + if (selection >= 0) { + auto item = items[selection]; + if (item->selectHandler) { + item->selectHandler(); + } } update(); } @@ -96,7 +98,7 @@ class CarouselWindow: public Window protected: std::vector items; int selection = 0; - uint8_t count; + unsigned count; void update(); };