From 9fbd3cc1f787c2a3618bfb7a4bd0d0118b4add6d Mon Sep 17 00:00:00 2001 From: jpirnay Date: Thu, 9 Apr 2026 23:16:32 +0200 Subject: [PATCH] Review comments --- src/activities/reader/EpubReaderMenuActivity.cpp | 8 ++++---- src/components/themes/BaseTheme.cpp | 4 ---- src/components/themes/lyra/LyraTheme.cpp | 3 --- 3 files changed, 4 insertions(+), 11 deletions(-) diff --git a/src/activities/reader/EpubReaderMenuActivity.cpp b/src/activities/reader/EpubReaderMenuActivity.cpp index 1a5bfef9..313f4890 100644 --- a/src/activities/reader/EpubReaderMenuActivity.cpp +++ b/src/activities/reader/EpubReaderMenuActivity.cpp @@ -68,10 +68,10 @@ std::function EpubReaderMenuActivity::buildSelectablePredicate() cons void EpubReaderMenuActivity::onEnter() { Activity::onEnter(); - buttonNavigator.setSelectablePredicate(buildSelectablePredicate(), static_cast(menuItems.size())); - const int next = buttonNavigator.nextIndex(selectedIndex); - if (next != selectedIndex) { - selectedIndex = next; + const auto selectablePredicate = buildSelectablePredicate(); + buttonNavigator.setSelectablePredicate(selectablePredicate, static_cast(menuItems.size())); + if (!selectablePredicate(selectedIndex)) { + selectedIndex = buttonNavigator.nextIndex(selectedIndex); } requestUpdate(); } diff --git a/src/components/themes/BaseTheme.cpp b/src/components/themes/BaseTheme.cpp index e38a63e2..65608a75 100644 --- a/src/components/themes/BaseTheme.cpp +++ b/src/components/themes/BaseTheme.cpp @@ -291,9 +291,6 @@ void BaseTheme::drawList(const GfxRenderer& renderer, Rect rect, int itemCount, const bool isSeparator = UITheme::isSeparatorTitle(itemName); if (isSeparator) { itemName = UITheme::stripSeparatorTitle(itemName); - } - - if (isSeparator) { drawListSeparator(renderer, Rect{rect.x + BaseMetrics::values.contentSidePadding, itemY, contentWidth - BaseMetrics::values.contentSidePadding * 2, rowHeight}, @@ -304,7 +301,6 @@ void BaseTheme::drawList(const GfxRenderer& renderer, Rect rect, int itemCount, auto font = (rowSubtitle != nullptr) ? UI_12_FONT_ID : UI_10_FONT_ID; auto item = renderer.truncatedText(font, itemName.c_str(), textWidth); renderer.drawText(font, rect.x + BaseMetrics::values.contentSidePadding, itemY, item.c_str(), true); - renderer.drawText(font, rect.x + BaseMetrics::values.contentSidePadding, itemY, item.c_str(), true); if (rowSubtitle != nullptr) { // Draw subtitle; if the text is newline-separated (author\nseries), join with • for single-line display diff --git a/src/components/themes/lyra/LyraTheme.cpp b/src/components/themes/lyra/LyraTheme.cpp index a7ff264d..7658356f 100644 --- a/src/components/themes/lyra/LyraTheme.cpp +++ b/src/components/themes/lyra/LyraTheme.cpp @@ -446,9 +446,6 @@ void LyraTheme::drawList(const GfxRenderer& renderer, Rect rect, int itemCount, const bool isSeparator = UITheme::isSeparatorTitle(itemName); if (isSeparator) { itemName = UITheme::stripSeparatorTitle(itemName); - } - - if (isSeparator) { drawListSeparator(renderer, Rect{rect.x + LyraMetrics::values.contentSidePadding, itemY, contentWidth - LyraMetrics::values.contentSidePadding * 2, rowHeight},