mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
Kobo: Refactor various aspects of the Kaleido/MTK support (#12221)
* UIManager: Let the fb backend deal with Kaleido wfm promotion. This fixes a number of quirks that poisoned the refresh queue with spurious full-screen refreshes. See https://github.com/koreader/koreader-base/pull/1865 for more details. * This also means we now disable Kaleido waveform modes when color rendering is disabled (remember to trash your thumbnail cache if you don't want to mix color w/ grayscale thumbnails, though). * UIManager: Merge refreshes that share an edge, because that was driving me nuts (and would have most likely been merged by the kernel anyway). A perfect test-case is the FM, which trips two separate refreshes because of its title bar. * ReaderFlipping: Use sensible dimensions, so that we only refresh the icon's region. * ReaderBookmark: Only refresh the dogear instead of the whole page when toggling bookmarks. * NetworkSetting: Make it a real boy, so it consistently refreshes properly on dismiss instead of relying on UIManager saving the day. * Kobo: Aggressively prevent *both* suspend & standby while MTK devices are plugged-in, as both will horribly implode the kernel (we previously only prevent standby while charging). * Kobo: Switch to 8bpp on B&W MTK devices (or when color rendering is disabled on Kaleido panels).
This commit is contained in:
@@ -183,7 +183,7 @@ function Geom:intersect(rect_b)
|
||||
end
|
||||
|
||||
--[[--
|
||||
Returns true if self does not share any area with rect_b
|
||||
Returns true if self does not share any area or edge with rect_b
|
||||
|
||||
@tparam Geom rect_b
|
||||
]]
|
||||
@@ -208,6 +208,32 @@ function Geom:intersectWith(rect_b)
|
||||
return not self:notIntersectWith(rect_b)
|
||||
end
|
||||
|
||||
--[[--
|
||||
Returns true if self does not share any area with rect_b
|
||||
|
||||
@tparam Geom rect_b
|
||||
]]
|
||||
function Geom:notOpenIntersectWith(rect_b)
|
||||
if not rect_b or rect_b:area() == 0 then return true end
|
||||
|
||||
if (self.x > (rect_b.x + rect_b.w))
|
||||
or (self.y > (rect_b.y + rect_b.h))
|
||||
or (rect_b.x > (self.x + self.w))
|
||||
or (rect_b.y > (self.y + self.h)) then
|
||||
return true
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
--[[--
|
||||
Returns true if self geom shares area or an edge with rect_b.
|
||||
|
||||
@tparam Geom rect_b
|
||||
]]
|
||||
function Geom:openIntersectWith(rect_b)
|
||||
return not self:notOpenIntersectWith(rect_b)
|
||||
end
|
||||
|
||||
--[[--
|
||||
Set size of dimension or rectangle to size of given dimension/rectangle.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user