2
0
mirror of https://github.com/koreader/koreader synced 2024-11-10 01:10:34 +00:00
koreader/frontend/ui/widget/container/rightcontainer.lua
NiLuJe d59c837714
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).
2024-07-28 01:19:40 +02:00

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