From d4d5dd25ba61b18cdc52669c8efc4e610e686366 Mon Sep 17 00:00:00 2001 From: NiLuJe Date: Wed, 3 Feb 2021 16:57:23 +0100 Subject: [PATCH] TextViewer: Allow tweaking the region of the refresh done on close. Use it in ReaderBookmarks to clear flash_ui highlights. Fix #7230 --- frontend/apps/reader/modules/readerbookmark.lua | 7 ++++++- frontend/ui/widget/textviewer.lua | 6 ++++++ 2 files changed, 12 insertions(+), 1 deletion(-) 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