From 4b7d5c82b7f0069f047b96416625971d12d85854 Mon Sep 17 00:00:00 2001 From: Qingping Hou Date: Tue, 5 Mar 2019 00:51:00 -0800 Subject: [PATCH] fix: update gesturedector constant for custom screen dpi --- frontend/device/generic/device.lua | 5 +++++ frontend/device/gesturedetector.lua | 9 +++++---- reader.lua | 2 +- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/frontend/device/generic/device.lua b/frontend/device/generic/device.lua index 8e4b9e3d0..b992ce188 100644 --- a/frontend/device/generic/device.lua +++ b/frontend/device/generic/device.lua @@ -143,6 +143,11 @@ function Device:init() end end +function Device:setScreenDPI(dpi_override) + self.screen:setDPI(dpi_override) + self.input.gesture_detector:init() +end + function Device:getPowerDevice() return self.powerd end diff --git a/frontend/device/gesturedetector.lua b/frontend/device/gesturedetector.lua index a01feb994..ebd9abca1 100644 --- a/frontend/device/gesturedetector.lua +++ b/frontend/device/gesturedetector.lua @@ -91,11 +91,12 @@ function GestureDetector:new(o) end function GestureDetector:init() + local scaler = self.screen:getDPI() / 167 -- distance parameters - self.DOUBLE_TAP_DISTANCE = 50 * self.screen:getDPI() / 167 - self.TWO_FINGER_TAP_REGION = 20 * self.screen:getDPI() / 167 - self.PAN_THRESHOLD = 50 * self.screen:getDPI() / 167 - self.MULTISWIPE_THRESHOLD = 50 * self.screen:getDPI() / 167 + self.TWO_FINGER_TAP_REGION = 20 * scaler + self.DOUBLE_TAP_DISTANCE = 50 * scaler + self.PAN_THRESHOLD = self.DOUBLE_TAP_DISTANCE + self.MULTISWIPE_THRESHOLD = self.DOUBLE_TAP_DISTANCE end --[[-- diff --git a/reader.lua b/reader.lua index 1ae51dcee..5f92a8420 100755 --- a/reader.lua +++ b/reader.lua @@ -37,7 +37,7 @@ end local Device = require("device") local dpi_override = G_reader_settings:readSetting("screen_dpi") if dpi_override ~= nil then - Device.screen:setDPI(dpi_override) + Device:setScreenDPI(dpi_override) end local CanvasContext = require("document/canvascontext")