mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
ReaderView: Flash when paging *away* from images, too (#11152)
Reword the `Always flash around pages with images` Menu/Dispatcher entry accordingly. Fix #11143
This commit is contained in:
@@ -71,6 +71,10 @@ local ReaderView = OverlapGroup:extend{
|
||||
-- might be directly updated by readerpaging/readerrolling when
|
||||
-- they handle some panning/scrolling, to request "fast" refreshes
|
||||
currently_scrolling = false,
|
||||
|
||||
-- image content stats of the current page, if supported by the Document engine
|
||||
img_count = nil,
|
||||
img_coverage = nil,
|
||||
}
|
||||
|
||||
function ReaderView:init()
|
||||
@@ -103,6 +107,10 @@ function ReaderView:init()
|
||||
self.page_area = Geom:new{x = 0, y = 0, w = 0, h = 0}
|
||||
self.dim_area = Geom:new{x = 0, y = 0, w = 0, h = 0}
|
||||
|
||||
-- Zero-init for sanity
|
||||
self.img_count = 0
|
||||
self.img_coverage = 0
|
||||
|
||||
self:addWidgets()
|
||||
self.emitHintPageEvent = function()
|
||||
self.ui:handleEvent(Event:new("HintPage", self.hinting))
|
||||
@@ -258,8 +266,11 @@ function ReaderView:paintTo(bb, x, y)
|
||||
-- Whereas for CRe,
|
||||
-- If we're attempting to show a large enough amount of image data, request dithering (without triggering another repaint ;)).
|
||||
local img_count, img_coverage = self.document:getDrawnImagesStatistics()
|
||||
-- With some nil guards because this may not be implemented in every engine ;).
|
||||
if img_count and img_count > 0 and img_coverage and img_coverage >= 0.075 then
|
||||
-- We also want to deal with paging *away* from image content, which would have adverse effect on ghosting.
|
||||
local coverage_diff = math.abs(img_coverage - self.img_coverage)
|
||||
-- Which is why we remember the stats of the *previous* page.
|
||||
self.img_count, self.img_coverage = img_count, img_coverage
|
||||
if img_coverage >= 0.075 or coverage_diff >= 0.075 then
|
||||
self.dialog.dithered = true
|
||||
-- Request a flashing update while we're at it, but only if it's the first time we're painting it
|
||||
if self.state.drawn == false and G_reader_settings:nilOrTrue("refresh_on_pages_with_images") then
|
||||
|
||||
Reference in New Issue
Block a user