mirror of
https://github.com/koreader/koreader.git
synced 2025-12-13 20:36:53 +01:00
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).
This commit is contained in:
@@ -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 UIManager = require("ui/uimanager")
|
||||
local Screen = require("device").screen
|
||||
local Event = require("ui/event")
|
||||
local T = require("ffi/util").template
|
||||
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 T = require("ffi/util").template
|
||||
|
||||
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)
|
||||
|
||||
Reference in New Issue
Block a user