diff --git a/frontend/apps/reader/modules/readerbookmark.lua b/frontend/apps/reader/modules/readerbookmark.lua index 26ee97027..8cff6d2f0 100644 --- a/frontend/apps/reader/modules/readerbookmark.lua +++ b/frontend/apps/reader/modules/readerbookmark.lua @@ -1090,11 +1090,28 @@ function ReaderBookmark:showBookmarkDetails(item) self:updateBookmarkList(nil, idx) self:showBookmarkDetails(item_table[idx]) end + -- Refresh the bookmark list whenever details may have been edited + local _updateBookmarkList = function() + if self.details_updated then + self.details_updated = nil + if self.show_edited_only then + for i = #item_table, 1, -1 do + if not item_table[i].text_edited then + table.remove(item_table, i) + end + end + end + self:updateBookmarkList(item_table, -1) + end + end textviewer = TextViewer:new{ title = T(_("Bookmark details (%1/%2)"), item.idx, #item_table), text = text, text_type = "bookmark", + close_callback = function() + _updateBookmarkList() + end, buttons_table = { { { @@ -1141,17 +1158,7 @@ function ReaderBookmark:showBookmarkDetails(item) { text = _("Close"), callback = function() - if self.details_updated then - self.details_updated = nil - if self.show_edited_only then - for i = #item_table, 1, -1 do - if not item_table[i].text_edited then - table.remove(item_table, i) - end - end - end - self:updateBookmarkList(item_table, -1) - end + _updateBookmarkList() UIManager:close(textviewer) end, }, diff --git a/frontend/ui/widget/bookmapwidget.lua b/frontend/ui/widget/bookmapwidget.lua index ace95aa47..24be4e648 100644 --- a/frontend/ui/widget/bookmapwidget.lua +++ b/frontend/ui/widget/bookmapwidget.lua @@ -1437,9 +1437,11 @@ function BookMapWidget:onClose(close_all_parents) collectgarbage() collectgarbage() end) - -- As we're getting back to Reader, update the footer and do a full flashing + -- As we're getting back to Reader, update the footer and the dogear state + -- (we may have toggled bookmark for current page) and do a full flashing -- refresh to remove any ghost trace of thumbnails or black page slots UIManager:broadcastEvent(Event:new("UpdateFooter")) + self.ui.bookmark:onPageUpdate(self.ui:getCurrentPage()) UIManager:setDirty(self.ui.dialog, "full") end return true diff --git a/frontend/ui/widget/pagebrowserwidget.lua b/frontend/ui/widget/pagebrowserwidget.lua index ada48d1ac..c1e1bb9d5 100644 --- a/frontend/ui/widget/pagebrowserwidget.lua +++ b/frontend/ui/widget/pagebrowserwidget.lua @@ -1084,9 +1084,11 @@ function PageBrowserWidget:onClose(close_all_parents) collectgarbage() collectgarbage() end) - -- As we're getting back to Reader, update the footer and do a full flashing + -- As we're getting back to Reader, update the footer and the dogear state + -- (we may have toggled bookmark for current page) and do a full flashing -- refresh to remove any ghost trace of thumbnails or black page slots UIManager:broadcastEvent(Event:new("UpdateFooter")) + self.ui.bookmark:onPageUpdate(self.ui:getCurrentPage()) UIManager:setDirty(self.ui.dialog, "full") end return true