mirror of
https://github.com/koreader/koreader
synced 2024-11-10 01:10:34 +00:00
d59c837714
* 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).
29 lines
890 B
Lua
29 lines
890 B
Lua
--[[--
|
|
RightContainer aligns its content (1 widget) at the right of its own dimensions
|
|
--]]
|
|
|
|
local BD = require("ui/bidi")
|
|
local WidgetContainer = require("ui/widget/container/widgetcontainer")
|
|
|
|
local RightContainer = WidgetContainer:extend{
|
|
allow_mirroring = true,
|
|
}
|
|
|
|
function RightContainer:paintTo(bb, x, y)
|
|
local contentSize = self[1]:getSize()
|
|
--- @fixme
|
|
-- if contentSize.w > self.dimen.w or contentSize.h > self.dimen.h then
|
|
-- throw error? paint to scrap buffer and blit partially?
|
|
-- for now, we ignore this
|
|
-- end
|
|
if not BD.mirroredUILayout() or not self.allow_mirroring then
|
|
x = x + (self.dimen.w - contentSize.w)
|
|
-- else: keep x, as in LeftContainer
|
|
end
|
|
self.dimen.x = x
|
|
self.dimen.y = y + math.floor((self.dimen.h - contentSize.h)/2)
|
|
self[1]:paintTo(bb, self.dimen.x, self.dimen.y)
|
|
end
|
|
|
|
return RightContainer
|