diff --git a/frontend/apps/reader/modules/readerfooter.lua b/frontend/apps/reader/modules/readerfooter.lua index fc36af187..a025b8202 100644 --- a/frontend/apps/reader/modules/readerfooter.lua +++ b/frontend/apps/reader/modules/readerfooter.lua @@ -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 diff --git a/frontend/dispatcher.lua b/frontend/dispatcher.lua index a99bdddb6..e8e4b46ca 100644 --- a/frontend/dispatcher.lua +++ b/frontend/dispatcher.lua @@ -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}, diff --git a/spec/unit/readerfooter_spec.lua b/spec/unit/readerfooter_spec.lua index ff635c625..127f8eb6e 100644 --- a/spec/unit/readerfooter_spec.lua +++ b/spec/unit/readerfooter_spec.lua @@ -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()