ReaderUI: Properly neuter gesture handling from InputContainer modules

None[1] of them actually rely on their own onGesture handler, they
all register their own stuff to ReaderUI's.
Hotfix #9710 revealed that the way this was handled didn't exactly
work as expected ;).

The only thing that consumes ges_events is InputContainer's onGesture
method. All these modules *extend* InputContainer, but none of them
*implement* a custom onGesture, so self.onGesture = nil was just a NOP,
they always access InputContainer's method via inheritance.
If we actively want to neuter it, we *have* to implement it in that
module (with a NOP).

[1] The exception being ReaderZooming, but that only when in flip mode.
reviewable/pr9739/r1
NiLuJe 2 years ago
parent 71cad1e49c
commit 1e24a1c7a3

@ -56,8 +56,12 @@ function ReaderBookmark:init()
end
self.ui.menu:registerToMainMenu(self)
-- NOP our own gesture handling
self.ges_events = nil
end
function ReaderBookmark:onGesture() end
function ReaderBookmark:addToMainMenu(menu_items)
menu_items.bookmarks = {
text = _("Bookmarks"),

@ -28,8 +28,13 @@ function ReaderConfig:init()
else
self.activation_menu = "swipe_tap"
end
-- delegate gesture listener to ReaderUI, NOP our own
self.ges_events = nil
end
function ReaderConfig:onGesture() end
function ReaderConfig:initGesListener()
if not Device:isTouchDevice() then return end

@ -126,8 +126,13 @@ function ReaderFont:init()
return self.font_face
end
self.ui.menu:registerToMainMenu(self)
-- NOP our own gesture handling
self.ges_events = nil
end
function ReaderFont:onGesture() end
function ReaderFont:onSetDimensions(dimen)
self.dimen = dimen
end

@ -230,13 +230,14 @@ function ReaderHighlight:init()
self.ui:registerPostInitCallback(function()
self.ui.menu:registerToMainMenu(self)
end)
-- delegate gesture listener to readerui, NOP our own
self.ges_events = nil
end
function ReaderHighlight:setupTouchZones()
-- delegate gesture listener to readerui
self.ges_events = {}
self.onGesture = nil
function ReaderHighlight:onGesture() end
function ReaderHighlight:setupTouchZones()
if not Device:isTouchDevice() then return end
local hold_pan_rate = G_reader_settings:readSetting("hold_pan_rate")
if not hold_pan_rate then

@ -106,8 +106,13 @@ function ReaderLink:init()
G_reader_settings:saveSetting("swipe_link_footnote_popup", nil)
G_reader_settings:saveSetting("footnote_link_in_popup", true)
end
-- delegate gesture listener to readerui, NOP our own
self.ges_events = nil
end
function ReaderLink:onGesture() end
function ReaderLink:onReadSettings(config)
-- called when loading new document
self.location_stack = {}

@ -76,16 +76,18 @@ function ReaderMenu:init()
else
self.activation_menu = "swipe_tap"
end
-- delegate gesture listener to readerui, NOP our own
self.ges_events = nil
end
function ReaderMenu:onGesture() end
function ReaderMenu:getPreviousFile()
return require("readhistory"):getPreviousFile(self.ui.document.file)
end
function ReaderMenu:onReaderReady()
-- delegate gesture listener to readerui
self.ges_events = {}
self.onGesture = nil
if not Device:isTouchDevice() then return end
local DTAP_ZONE_MENU = G_defaults:readSetting("DTAP_ZONE_MENU")

@ -118,16 +118,18 @@ function ReaderPaging:init()
end
self.pan_interval = time.s(1 / self.pan_rate)
self.number_of_pages = self.ui.document.info.number_of_pages
-- delegate gesture listener to readerui, NOP our own
self.ges_events = nil
end
function ReaderPaging:onGesture() end
function ReaderPaging:onReaderReady()
self:setupTouchZones()
end
function ReaderPaging:setupTouchZones()
-- delegate gesture listener to readerui
self.ges_events = {}
self.onGesture = nil
if not Device:isTouchDevice() then return end
local forward_zone, backward_zone = self.view:getTapZones()

@ -38,8 +38,12 @@ function ReaderPanning:init()
},
}
end
-- NOP our own gesture handling
self.ges_events = nil
end
function ReaderPanning:onGesture() end
function ReaderPanning:onSetDimensions(dimensions)
self.dimen = dimensions
end

@ -148,8 +148,13 @@ function ReaderRolling:init()
end)
self.ui.menu:registerToMainMenu(self)
self.batched_update_count = 0
-- delegate gesture listener to readerui, NOP our own
self.ges_events = nil
end
function ReaderRolling:onGesture() end
function ReaderRolling:onReadSettings(config)
-- 20180503: some fix in crengine has changed the way the DOM is built
-- for HTML documents and may make XPATHs obtained from previous version
@ -331,9 +336,6 @@ function ReaderRolling:onReaderReady()
end
function ReaderRolling:setupTouchZones()
-- delegate gesture listener to readerui
self.ges_events = {}
self.onGesture = nil
if not Device:isTouchDevice() then return end
local forward_zone, backward_zone = self.view:getTapZones()

@ -23,8 +23,12 @@ function ReaderRotation:init()
},
}
end
-- NOP our own gesture handling
self.ges_events = nil
end
function ReaderRotation:onGesture() end
--- @todo Reset rotation on new document, maybe on new page?
function ReaderRotation:onRotate(rotate_by)

@ -55,8 +55,13 @@ function ReaderToc:init()
self:resetToc()
self.ui.menu:registerToMainMenu(self)
-- NOP our own gesture handling
self.ges_events = nil
end
function ReaderToc:onGesture() end
function ReaderToc:onReadSettings(config)
self.toc_ticks_ignored_levels = config:readSetting("toc_ticks_ignored_levels") or {}
self.toc_chapter_navigation_bind_to_ticks = config:readSetting("toc_chapter_navigation_bind_to_ticks")

Loading…
Cancel
Save