From a943b7330305f030155d91868d37c51cda472ff8 Mon Sep 17 00:00:00 2001 From: Qingping Hou Date: Thu, 23 Mar 2017 11:40:42 -0700 Subject: [PATCH] fix: adjust pan rate for eink and non-eink screens --- frontend/apps/reader/modules/readerpaging.lua | 6 ++---- frontend/apps/reader/modules/readerrolling.lua | 4 ++-- frontend/apps/reader/readerui.lua | 5 +++++ 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/frontend/apps/reader/modules/readerpaging.lua b/frontend/apps/reader/modules/readerpaging.lua index f2b7aa3ed..8444aa672 100644 --- a/frontend/apps/reader/modules/readerpaging.lua +++ b/frontend/apps/reader/modules/readerpaging.lua @@ -10,9 +10,6 @@ local logger = require("logger") local _ = require("gettext") -local pan_rate = Screen.eink and 4.0 or 10.0 - - local function copyPageState(page_state) return { page = page_state.page, @@ -27,6 +24,7 @@ end local ReaderPaging = InputContainer:new{ + pan_rate = 30, -- default 30 ops, will be adjusted in readerui current_page = 0, number_of_pages = 0, last_pan_relative_y = 0, @@ -133,7 +131,7 @@ function ReaderPaging:setupTouchZones() { id = "paging_pan", ges = "pan", - rate = pan_rate, + rate = self.pan_rate, screen_zone = { ratio_x = 0, ratio_y = 0, ratio_w = 1, ratio_h = 1, }, diff --git a/frontend/apps/reader/modules/readerrolling.lua b/frontend/apps/reader/modules/readerrolling.lua index 94e4ad405..1af66a523 100644 --- a/frontend/apps/reader/modules/readerrolling.lua +++ b/frontend/apps/reader/modules/readerrolling.lua @@ -8,7 +8,6 @@ local UIManager = require("ui/uimanager") local logger = require("logger") local _ = require("gettext") -local pan_rate = Screen.eink and 4.0 or 10.0 --[[ Rolling is just like paging in page-based documents except that @@ -31,6 +30,7 @@ local pan_rate = Screen.eink and 4.0 or 10.0 rendering. --]] local ReaderRolling = InputContainer:new{ + pan_rate = 30, -- default 30 ops, will be adjusted in readerui old_doc_height = nil, old_page = nil, current_pos = 0, @@ -225,7 +225,7 @@ function ReaderRolling:setupTouchZones() { id = "rolling_pan", ges = "pan", - rate = pan_rate, + rate = self.pan_rate, screen_zone = { ratio_x = 0, ratio_y = 0, ratio_w = 1, ratio_h = 1, }, diff --git a/frontend/apps/reader/readerui.lua b/frontend/apps/reader/readerui.lua index 8b4c6f2f8..ac7c42cfc 100644 --- a/frontend/apps/reader/readerui.lua +++ b/frontend/apps/reader/readerui.lua @@ -85,6 +85,9 @@ function ReaderUI:registerPostInitCallback(callback) end function ReaderUI:init() + -- cap screen refresh on pan to 2 refreshes per second + local pan_rate = Screen.eink and 2.0 or 30.0 + self.postInitCallback = {} -- if we are not the top level dialog ourselves, it must be given in the table if not self.dialog then @@ -229,6 +232,7 @@ function ReaderUI:init() }) -- paging controller self:registerModule("paging", ReaderPaging:new{ + pan_rate = pan_rate, dialog = self.dialog, view = self.view, ui = self @@ -284,6 +288,7 @@ function ReaderUI:init() }) -- rolling controller self:registerModule("rolling", ReaderRolling:new{ + pan_rate = pan_rate, dialog = self.dialog, view = self.view, ui = self