mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
ReaderFooter: separate ToggleFooterMode from TapFooter
the footer can be toggled by gestures and menu, and should only be locked or skim in flipping mode when the footer is tapped also allow toggling when only displaying the progress bar rename to TapFooter to show it is not an event Fixes: #10355
This commit is contained in:
@@ -845,7 +845,7 @@ function ReaderFooter:setupTouchZones()
|
||||
id = "readerfooter_tap",
|
||||
ges = "tap",
|
||||
screen_zone = footer_screen_zone,
|
||||
handler = function(ges) return self:onTapFooter(ges) end,
|
||||
handler = function(ges) return self:TapFooter(ges) end,
|
||||
overrides = {
|
||||
"readerconfigmenu_ext_tap",
|
||||
"readerconfigmenu_tap",
|
||||
@@ -1018,7 +1018,7 @@ function ReaderFooter:addToMainMenu(menu_items)
|
||||
enabled_func = function()
|
||||
return not self.view.flipping_visible
|
||||
end,
|
||||
callback = function() self:onTapFooter(true) end,
|
||||
callback = function() self:onToggleFooterMode() end,
|
||||
})
|
||||
settings_submenu_num = 2
|
||||
end
|
||||
@@ -2366,12 +2366,7 @@ function ReaderFooter:onExitFlippingMode()
|
||||
self:rescheduleFooterAutoRefreshIfNeeded()
|
||||
end
|
||||
|
||||
function ReaderFooter:onTapFooter(ges)
|
||||
local ignore_lock = false
|
||||
if ges == true then
|
||||
ignore_lock = true
|
||||
ges = nil
|
||||
end
|
||||
function ReaderFooter:TapFooter(ges)
|
||||
if self.view.flipping_visible and ges then
|
||||
local pos = ges.pos
|
||||
local dimen = self.progress_bar.dimen
|
||||
@@ -2383,9 +2378,12 @@ function ReaderFooter:onTapFooter(ges)
|
||||
self:onUpdateFooter(true)
|
||||
return true
|
||||
end
|
||||
if self.has_no_mode or (self.settings.lock_tap and not ignore_lock) then
|
||||
return
|
||||
end
|
||||
if self.settings.lock_tap then return end
|
||||
return self:onToggleFooterMode()
|
||||
end
|
||||
|
||||
function ReaderFooter:onToggleFooterMode()
|
||||
if self.has_no_mode and self.settings.disable_progress_bar then return end
|
||||
if self.settings.all_at_once or self.has_no_mode then
|
||||
if self.mode >= 1 then
|
||||
self.mode = self.mode_list.off
|
||||
|
||||
@@ -112,7 +112,7 @@ local settingsList = {
|
||||
|
||||
-- reader settings
|
||||
open_next_document_in_folder = {category="none", event="OpenNextDocumentInFolder", title=_("Open next document in folder"), reader=true, separator=true},
|
||||
toggle_status_bar = {category="none", event="TapFooter", title=_("Toggle status bar"), reader=true, separator=true},
|
||||
toggle_status_bar = {category="none", event="ToggleFooterMode", title=_("Toggle status bar"), reader=true, separator=true},
|
||||
prev_chapter = {category="none", event="GotoPrevChapter", title=_("Previous chapter"), reader=true},
|
||||
next_chapter = {category="none", event="GotoNextChapter", title=_("Next chapter"), reader=true},
|
||||
first_page = {category="none", event="GoToBeginning", title=_("First page"), reader=true},
|
||||
|
||||
@@ -301,35 +301,35 @@ describe("Readerfooter module", function()
|
||||
}
|
||||
local footer = readerui.view.footer
|
||||
footer.mode = 0
|
||||
footer:onTapFooter()
|
||||
footer:TapFooter()
|
||||
assert.is.same(1, footer.mode)
|
||||
footer:onTapFooter()
|
||||
footer:TapFooter()
|
||||
-- 2 is pages_left_book, an alternate variant of page_progress, disabled by default (#7047)
|
||||
assert.is.same(3, footer.mode)
|
||||
footer:onTapFooter()
|
||||
footer:TapFooter()
|
||||
assert.is.same(4, footer.mode)
|
||||
footer:onTapFooter()
|
||||
footer:TapFooter()
|
||||
assert.is.same(5, footer.mode)
|
||||
footer:onTapFooter()
|
||||
footer:TapFooter()
|
||||
assert.is.same(6, footer.mode)
|
||||
footer:onTapFooter()
|
||||
footer:TapFooter()
|
||||
assert.is.same(7, footer.mode)
|
||||
footer:onTapFooter()
|
||||
footer:TapFooter()
|
||||
assert.is.same(8, footer.mode)
|
||||
footer:onTapFooter()
|
||||
footer:TapFooter()
|
||||
assert.is.same(0, footer.mode)
|
||||
|
||||
footer.settings.all_at_once = true
|
||||
footer:updateFooterTextGenerator()
|
||||
footer.mode = 5
|
||||
footer:onTapFooter()
|
||||
footer:TapFooter()
|
||||
assert.is.same(0, footer.mode)
|
||||
footer:onTapFooter()
|
||||
footer:TapFooter()
|
||||
assert.is.same(1, footer.mode)
|
||||
footer:onTapFooter()
|
||||
footer:TapFooter()
|
||||
assert.is.same(0, footer.mode)
|
||||
-- Make it visible again to make the following tests behave...
|
||||
footer:onTapFooter()
|
||||
footer:TapFooter()
|
||||
assert.is.same(1, footer.mode)
|
||||
readerui:closeDocument()
|
||||
readerui:onClose()
|
||||
|
||||
Reference in New Issue
Block a user