fix: resolve three reader bugs (confirm eaten, footnotes menu, phantom render)
1. Clear ignoreNextConfirmRelease after transferring state to child activity, so the next Confirm press isn't silently consumed. 2. Add conditional FOOTNOTES entry to reader menu when the current book has footnotes. 3. Guard clock-minute requestUpdate() with !isReaderActivity() to prevent full e-ink re-renders every minute while reading. Made-with: Cursor
This commit is contained in:
@@ -447,6 +447,7 @@ void EpubReaderActivity::onReaderMenuConfirm(EpubReaderMenuActivity::MenuAction
|
||||
: epub->getTocIndexForSpineIndex(currentSpineIndex);
|
||||
const std::string path = epub->getPath();
|
||||
const bool consumeRelease = ignoreNextConfirmRelease;
|
||||
ignoreNextConfirmRelease = false;
|
||||
startActivityForResult(
|
||||
std::make_unique<EpubReaderChapterSelectionActivity>(renderer, mappedInput, epub, path, spineIdx, tocIdx,
|
||||
consumeRelease),
|
||||
|
||||
@@ -39,6 +39,9 @@ std::vector<EpubReaderMenuActivity::MenuItem> EpubReaderMenuActivity::buildMenuI
|
||||
items.push_back({MenuAction::ADD_BOOKMARK, StrId::STR_ADD_BOOKMARK});
|
||||
}
|
||||
items.push_back({MenuAction::DICTIONARY, StrId::STR_DICTIONARY});
|
||||
if (hasFootnotes) {
|
||||
items.push_back({MenuAction::FOOTNOTES, StrId::STR_FOOTNOTES});
|
||||
}
|
||||
items.push_back({MenuAction::TOGGLE_ORIENTATION, StrId::STR_TOGGLE_ORIENTATION});
|
||||
items.push_back({MenuAction::TOGGLE_FONT_SIZE, StrId::STR_TOGGLE_FONT_SIZE});
|
||||
items.push_back({MenuAction::LETTERBOX_FILL, StrId::STR_OVERRIDE_LETTERBOX_FILL});
|
||||
|
||||
@@ -406,7 +406,7 @@ void loop() {
|
||||
}
|
||||
|
||||
// Refresh screen when the displayed minute changes (clock in header)
|
||||
if (SETTINGS.clockFormat != CrossPointSettings::CLOCK_OFF) {
|
||||
if (SETTINGS.clockFormat != CrossPointSettings::CLOCK_OFF && !activityManager.isReaderActivity()) {
|
||||
static int lastRenderedMinute = -1;
|
||||
static bool sawInvalidTime = false;
|
||||
time_t now = time(nullptr);
|
||||
|
||||
Reference in New Issue
Block a user