mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
implement separate odd/even bboxes
This commit is contained in:
@@ -67,7 +67,7 @@ UniReader = {
|
||||
jump_stack = {},
|
||||
toc = nil,
|
||||
|
||||
bbox = nil, -- override getUsedBBox
|
||||
bbox = {}, -- override getUsedBBox
|
||||
}
|
||||
|
||||
function UniReader:new(o)
|
||||
@@ -197,10 +197,22 @@ function UniReader:setzoom(page)
|
||||
|
||||
if self.bbox then
|
||||
print("# ORIGINAL page::getUsedBBox "..x0.."*"..y0.." "..x1.."*"..y1);
|
||||
x0 = self.bbox["x0"]
|
||||
y0 = self.bbox["y0"]
|
||||
x1 = self.bbox["x1"]
|
||||
y1 = self.bbox["y1"]
|
||||
local bbox = self.bbox[self.pageno] -- exact
|
||||
if bbox == nil then
|
||||
bbox = self.bbox[self:odd_even(self.pageno)] -- odd/even
|
||||
end
|
||||
if bbox == nil then -- last used up to this page
|
||||
for i = 0,self.pageno do
|
||||
bbox = self.bbox[ self.pageno - i ]
|
||||
if bbox ~= nil then break end
|
||||
end
|
||||
end
|
||||
if bbox ~= nil then
|
||||
x0 = bbox["x0"]
|
||||
y0 = bbox["y0"]
|
||||
x1 = bbox["x1"]
|
||||
y1 = bbox["y1"]
|
||||
end
|
||||
end
|
||||
|
||||
print("# page::getUsedBBox "..x0.."*"..y0.." "..x1.."*"..y1);
|
||||
@@ -494,10 +506,19 @@ function UniReader:showJumpStack()
|
||||
end
|
||||
end
|
||||
|
||||
function UniReader:odd_even(number)
|
||||
print("## odd_even "..number)
|
||||
if number % 2 == 1 then
|
||||
return "odd"
|
||||
else
|
||||
return "even"
|
||||
end
|
||||
end
|
||||
|
||||
-- wait for input and handle it
|
||||
function UniReader:inputloop()
|
||||
local keep_running = true
|
||||
self.bbox = {}
|
||||
while 1 do
|
||||
local ev = input.waitForEvent()
|
||||
ev.code = adjustKeyEvents(ev)
|
||||
@@ -589,8 +610,10 @@ function UniReader:inputloop()
|
||||
bbox["y0"] = - self.offset_y / self.globalzoom
|
||||
bbox["x1"] = bbox["x0"] + width / self.globalzoom
|
||||
bbox["y1"] = bbox["y0"] + height / self.globalzoom
|
||||
self.bbox = bbox
|
||||
print("# bbox " .. dump(self.bbox))
|
||||
self.bbox[self.pageno] = bbox
|
||||
self.bbox[self:odd_even(self.pageno)] = bbox
|
||||
print("# bbox " .. self.pageno .. dump(self.bbox))
|
||||
self.globalzoommode = self.ZOOM_FIT_TO_CONTENT -- use bbox
|
||||
end
|
||||
|
||||
-- switch to ZOOM_BY_VALUE to enable panning on fiveway move
|
||||
|
||||
Reference in New Issue
Block a user