Fix: Footer hides text (#3056)

This patch should resolve issue #2257 (Footer hides text)
Sometimes, depending on an epub style, some text is hidden by the progress bar (the mini one at the bottom).
pull/3066/head
Robert 7 years ago committed by Frans de Jonge
parent 64529b5391
commit 1bfad22af0

@ -16,7 +16,6 @@ local util = require("util")
local _ = require("gettext")
local Screen = Device.screen
local MODE = {
off = 0,
page_progress = 1,
@ -195,13 +194,17 @@ function ReaderFooter:init()
self[1] = self.footer_positioner
self.mode = G_reader_settings:readSetting("reader_footer_mode") or self.mode
if self.has_no_mode then
self.mode = MODE.off
self.view.footer_visible = false
self:resetLayout()
end
if self.settings.all_at_once then
self.view.footer_visible = (self.mode ~= MODE.off)
self:updateFooterTextGenerator()
else
self:applyFooterMode()
end
if self.settings.auto_refresh_time then
self:setupAutoRefreshTime()
end
@ -369,6 +372,15 @@ function ReaderFooter:addToMainMenu(menu_items)
break
end
end
-- refresh margins position
if self.has_no_mode then
self.ui:handleEvent(Event:new("SetPageMargins", self.view.document.configurable.page_margins))
self.genFooterText = footerTextGeneratorMap.empty
self.mode = MODE.off
elseif prev_has_no_mode then
self.ui:handleEvent(Event:new("SetPageMargins", self.view.document.configurable.page_margins))
G_reader_settings:saveSetting("reader_footer_mode", first_enabled_mode_num)
end
if callback then
should_update = callback(self)
elseif self.settings.all_at_once then
@ -603,6 +615,9 @@ function ReaderFooter:onExitFlippingMode()
end
function ReaderFooter:onTapFooter(ges)
if self.has_no_mode then
return
end
if self.view.flipping_visible then
local pos = ges.pos
local dimen = self.progress_bar.dimen

@ -1,11 +1,11 @@
local InputContainer = require("ui/widget/container/inputcontainer")
local ConfirmBox = require("ui/widget/confirmbox")
local lfs = require("libs/libkoreader-lfs")
local Event = require("ui/event")
local InputContainer = require("ui/widget/container/inputcontainer")
local UIManager = require("ui/uimanager")
local lfs = require("libs/libkoreader-lfs")
local _ = require("gettext")
local Screen = require("device").screen
local Event = require("ui/event")
local T = require("ffi/util").template
local _ = require("gettext")
local ReaderTypeset = InputContainer:new{
css_menu_title = _("Set render style"),
@ -196,7 +196,12 @@ function ReaderTypeset:onSetPageMargins(margins)
local left = Screen:scaleBySize(margins[1])
local top = Screen:scaleBySize(margins[2])
local right = Screen:scaleBySize(margins[3])
local bottom = Screen:scaleBySize(margins[4])
local bottom
if self.view.footer.has_no_mode then
bottom = Screen:scaleBySize(margins[4])
else
bottom = Screen:scaleBySize(margins[4] + DMINIBAR_HEIGHT)
end
self.ui.document:setPageMargins(left, top, right, bottom)
self.ui:handleEvent(Event:new("UpdatePos"))
return true

@ -595,7 +595,7 @@ describe("Readerfooter module", function()
local footer = readerui.view.footer
assert.truthy(footer.has_no_mode)
assert.truthy(readerui.view.footer_visible)
assert.falsy(readerui.view.footer_visible)
assert.is.same(21, footer:getHeight())
end)

@ -99,9 +99,9 @@ describe("Readerhighlight module", function()
end)
it("should response on tap gesture", function()
tap_highlight_text(readerui,
Geom:new{ x = 26, y = 374 },
Geom:new{ x = 484, y = 574 },
Geom:new{ x = 331, y = 474 })
Geom:new{ x = 151, y = 120 },
Geom:new{ x = 290, y = 301 },
Geom:new{ x = 200, y = 268 })
Screen:shot("screenshots/reader_tap_highlight_text_epub.png")
end)
end)

Loading…
Cancel
Save