mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
add minibar height into overlap height
This commit is contained in:
@@ -24,6 +24,7 @@ local ReaderFooter = InputContainer:new{
|
||||
progress_text = nil,
|
||||
text_font_face = "ffont",
|
||||
text_font_size = 14,
|
||||
bar_height = Screen:scaleByDPI(7),
|
||||
height = Screen:scaleByDPI(19),
|
||||
padding = Screen:scaleByDPI(10),
|
||||
}
|
||||
@@ -59,7 +60,7 @@ function ReaderFooter:init()
|
||||
local text_width = self.progress_text:getSize().w
|
||||
self.progress_bar = ProgressWidget:new{
|
||||
width = math.floor(Screen:getWidth() - text_width - self.padding),
|
||||
height = Screen:scaleByDPI(7),
|
||||
height = self.bar_height,
|
||||
percentage = self.progress_percentage,
|
||||
}
|
||||
local horizontal_group = HorizontalGroup:new{}
|
||||
@@ -143,17 +144,17 @@ function ReaderFooter:updateFooterPage()
|
||||
end
|
||||
self.progress_text.text = string.sub(self.progress_text.text,4)
|
||||
else
|
||||
if self.mode == 1 then
|
||||
if self.mode == 1 then
|
||||
self.progress_text.text = string.format("%d / %d", self.pageno, self.pages)
|
||||
elseif self.mode == 2 then
|
||||
elseif self.mode == 2 then
|
||||
self.progress_text.text = os.date("%H:%M")
|
||||
elseif self.mode == 3 then
|
||||
elseif self.mode == 3 then
|
||||
self.progress_text.text = "=> " .. self.ui.toc:_getChapterPagesLeft(self.pageno,self.pages)
|
||||
elseif self.mode == 4 then
|
||||
elseif self.mode == 4 then
|
||||
powerd = Device:getPowerDevice()
|
||||
state = powerd:isCharging() and -1 or powerd:getCapacity()
|
||||
self.progress_text.text = "B:" .. powerd:getCapacity() .. "%"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@@ -603,15 +603,21 @@ function ReaderPaging:onScrollPanRel(diff)
|
||||
UIManager:setDirty(self.view.dialog, "fast")
|
||||
end
|
||||
|
||||
function ReaderPaging:calculateOverlap()
|
||||
local footer_height = (self.view.footer_visible and 1 or 0) * self.view.footer.bar_height
|
||||
return self.overlap + footer_height
|
||||
end
|
||||
|
||||
function ReaderPaging:onScrollPageRel(diff)
|
||||
DEBUG("scroll relative page:", diff)
|
||||
local blank_area = Geom:new{}
|
||||
blank_area:setSizeTo(self.view.dimen)
|
||||
local overlap = self:calculateOverlap()
|
||||
if diff > 0 then
|
||||
local last_page_state = table.remove(self.view.page_states)
|
||||
local offset = Geom:new{
|
||||
x = 0,
|
||||
y = last_page_state.visible_area.h - self.overlap
|
||||
y = last_page_state.visible_area.h - overlap
|
||||
}
|
||||
self.view.page_states = self:genPageStatesFromTop(last_page_state, blank_area, offset)
|
||||
end
|
||||
@@ -619,7 +625,7 @@ function ReaderPaging:onScrollPageRel(diff)
|
||||
local first_page_state = table.remove(self.view.page_states, 1)
|
||||
local offset = Geom:new{
|
||||
x = 0,
|
||||
y = -first_page_state.visible_area.h + self.overlap
|
||||
y = -first_page_state.visible_area.h + overlap
|
||||
}
|
||||
self.view.page_states = self:genPageStatesFromBottom(first_page_state, blank_area, offset)
|
||||
end
|
||||
@@ -672,16 +678,17 @@ function ReaderPaging:onGotoPageRel(diff)
|
||||
else
|
||||
-- not end of page yet, goto next view
|
||||
-- adjust panning step according to overlap
|
||||
if x_pan_off > self.overlap then
|
||||
local overlap = self:calculateOverlap()
|
||||
if x_pan_off > overlap then
|
||||
-- moving to next view, move view
|
||||
x_pan_off = x_pan_off - self.overlap
|
||||
elseif x_pan_off < -self.overlap then
|
||||
x_pan_off = x_pan_off + self.overlap
|
||||
x_pan_off = x_pan_off - overlap
|
||||
elseif x_pan_off < -overlap then
|
||||
x_pan_off = x_pan_off + overlap
|
||||
end
|
||||
if y_pan_off > self.overlap then
|
||||
y_pan_off = y_pan_off - self.overlap
|
||||
elseif y_pan_off < -self.overlap then
|
||||
y_pan_off = y_pan_off + self.overlap
|
||||
if y_pan_off > overlap then
|
||||
y_pan_off = y_pan_off - overlap
|
||||
elseif y_pan_off < -overlap then
|
||||
y_pan_off = y_pan_off + overlap
|
||||
end
|
||||
-- we have to calculate again to count into overlap
|
||||
new_va.x = Math.roundAwayFromZero(self.visible_area.x+x_pan_off)
|
||||
|
||||
Reference in New Issue
Block a user