diff --git a/frontend/apps/reader/modules/readerbookmark.lua b/frontend/apps/reader/modules/readerbookmark.lua index 76d1f914d..26e6700cd 100644 --- a/frontend/apps/reader/modules/readerbookmark.lua +++ b/frontend/apps/reader/modules/readerbookmark.lua @@ -350,7 +350,12 @@ function ReaderBookmark:onShowBookmark() end, }, } - } + }, + -- Request a full-screen refresh on close, to clear potential flash_ui highlights + close_callback = function() + -- TextViewer does a "partial" on CloseWidget + UIManager:setDirty(nil, "partial") + end, } UIManager:show(self.textviewer) return true diff --git a/frontend/ui/widget/textviewer.lua b/frontend/ui/widget/textviewer.lua index 0e6febb9d..729deec5e 100644 --- a/frontend/ui/widget/textviewer.lua +++ b/frontend/ui/widget/textviewer.lua @@ -58,6 +58,9 @@ local TextViewer = InputContainer:new{ text_padding = Size.padding.large, text_margin = Size.margin.small, button_padding = Size.padding.default, + + -- Optional callback called on CloseWidget, set by the widget which showed us (e.g., to request a full-screen refresh) + close_callback = nil, } function TextViewer:init() @@ -228,6 +231,9 @@ function TextViewer:onCloseWidget() UIManager:setDirty(nil, function() return "partial", self.frame.dimen end) + if self.close_callback then + self.close_callback() + end return true end