We wouldn't want those to become full updates ;).
Also apply an optionally different waveform mode for such partial,
regional updates (right now, only Kindle devices make use of this finer
grained control).
Notethatthebottomstatusbarregion is refreshedseparately,rightafterthescreen,asaPARTIAL,AUTO(GC16_FAST)update,andit's this marker that'swaitedafter...
Nonflashlastslonger(dualtimeout:14pgs/7mins).
--]]
-- We don't really have an easy way to know if we're refreshing the UI, or a page, or if said page contains an image, so go with the highest fidelity option
-- NOTE: Or we could go back to what KOReader did before fa55acc in koreader-base, which was also use WAVEFORM_MODE_AUTO ;). I have *no* idea how the driver makes its choice though...
-- NOTE: Or we could go back to what KOReader did before fa55acc in koreader-base, which was also to use AUTO ;). I have *no* idea how the driver makes its choice though...
-- And the PW2 REAGL trickery (they're always full refreshes, but there's no black flash)
-- FIXME: Possibly a bad idea if self.update_regions_func is set and we actually really want a partial update? Fallback to default_waveform_mode (or GC16_FAST on Kindle)
-- If the device is REAGL-aware, and we're doing a reader refresh (i.e., PARTIAL, but not regional), apply some trickery to match the stock reader's behavior (REAGL updates are always FULL, but there's no black flash)
-- If we truly asked for a PARTIAL, regional update, it's likely for an UI element, fall back to the default waveform mode, which is tailored per-device to hopefully be more appropriate than the one we use in the reader
-- NOTE: Using default_waveform_mode might seem counter-intuitive when we have partial_refresh_waveform_mode, but partial_refresh_waveform_mode is mostly there as a means to flag REGAL-aware devices ;).
-- Here, we're actually interested in handling regional updates (which happen to be PARTIAL by definition), and not 'PARTIAL' updates that actually refresh the whole screen.
waveform_mode=self.default_waveform_mode
end
ifself.update_regions_functhen
localupdate_regions=self.update_regions_func()
for_,update_regioninipairs(update_regions)do
@ -434,7 +443,7 @@ function UIManager:run()
else
Screen:refresh(refresh_type,waveform_mode)
end
-- PW2 REAGL refreshes are always full (but without black flash), but we want to keep our black flash timeout working, so don't reset the count on full REAGL refreshes...
-- REAGL refreshes are always FULL (but without a black flash), but we want to keep our black flash timeout working, so don't reset the count on FULL REAGL refreshes...