mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
Fix scrolling, add inertial scroll on non-eInk devices
Add a new reader module: ReaderScrolling, that exposes some Scrolling options to the menu (which are to be used by and implemented in ReaderPaging and ReaderRolling themselves) and implement some inertial scrolling logic used by both of them. Default to "Classic scrolling" which is the expected behaviour on phones and tablets. The old CreDocument buggy behaviour is available as "Turbo scrolling" for both Paging and Rolling documents. Added a "On release scrolling" option that might be useful on eInk to avoid dynamic pan/scrolling. Try to avoid bad interactions between pan and swipe, cancelling unwanted panning if we ended up doing a swipe or multiswipe.
This commit is contained in:
@@ -33,6 +33,7 @@ local ReaderFont = require("apps/reader/modules/readerfont")
|
||||
local ReaderGoto = require("apps/reader/modules/readergoto")
|
||||
local ReaderHinting = require("apps/reader/modules/readerhinting")
|
||||
local ReaderHighlight = require("apps/reader/modules/readerhighlight")
|
||||
local ReaderScrolling = require("apps/reader/modules/readerscrolling")
|
||||
local ReaderKoptListener = require("apps/reader/modules/readerkoptlistener")
|
||||
local ReaderLink = require("apps/reader/modules/readerlink")
|
||||
local ReaderMenu = require("apps/reader/modules/readermenu")
|
||||
@@ -334,6 +335,13 @@ function ReaderUI:init()
|
||||
})
|
||||
end
|
||||
self.disable_double_tap = G_reader_settings:nilOrTrue("disable_double_tap")
|
||||
-- scrolling (scroll settings + inertial scrolling)
|
||||
self:registerModule("scrolling", ReaderScrolling:new{
|
||||
pan_rate = pan_rate,
|
||||
dialog = self.dialog,
|
||||
ui = self,
|
||||
view = self.view,
|
||||
})
|
||||
-- back location stack
|
||||
self:registerModule("back", ReaderBack:new{
|
||||
ui = self,
|
||||
|
||||
Reference in New Issue
Block a user