mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
fix #2110 by adding disable double tap option in screen options
This commit is contained in:
@@ -284,6 +284,7 @@ function ReaderUI:init()
|
||||
view = self.view,
|
||||
ui = self
|
||||
})
|
||||
self.disable_double_tap = G_reader_settings:readSetting("disable_double_tap") ~= false
|
||||
end
|
||||
-- fulltext search
|
||||
self:registerModule("search", ReaderSearch:new{
|
||||
|
||||
@@ -39,6 +39,7 @@ table.insert(common_settings, {
|
||||
sub_item_table = {
|
||||
require("ui/elements/screen_dpi_menu_table"),
|
||||
require("ui/elements/screen_eink_opt_menu_table"),
|
||||
require("ui/elements/screen_disable_double_tap_table"),
|
||||
require("ui/elements/refresh_menu_table"),
|
||||
},
|
||||
})
|
||||
|
||||
17
frontend/ui/elements/screen_disable_double_tap_table.lua
Normal file
17
frontend/ui/elements/screen_disable_double_tap_table.lua
Normal file
@@ -0,0 +1,17 @@
|
||||
local InfoMessage = require("ui/widget/infomessage")
|
||||
local UIManager = require("ui/uimanager")
|
||||
local _ = require("gettext")
|
||||
|
||||
return {
|
||||
text = _("Disable double tap"),
|
||||
checked_func = function()
|
||||
return G_reader_settings:readSetting("disable_double_tap") ~= false
|
||||
end,
|
||||
callback = function()
|
||||
disabled = G_reader_settings:readSetting("disable_double_tap") ~= false
|
||||
G_reader_settings:saveSetting("disable_double_tap", not disabled)
|
||||
UIManager:show(InfoMessage:new{
|
||||
text = _("This will take effect on next restart."),
|
||||
})
|
||||
end,
|
||||
}
|
||||
@@ -168,7 +168,9 @@ function UIManager:show(widget, refreshtype, refreshregion, x, y)
|
||||
-- tell the widget that it is shown now
|
||||
widget:handleEvent(Event:new("Show"))
|
||||
-- check if this widget disables double tap gesture
|
||||
if widget.disable_double_tap then
|
||||
if widget.disable_double_tap == false then
|
||||
Input.disable_double_tap = false
|
||||
else
|
||||
Input.disable_double_tap = true
|
||||
end
|
||||
end
|
||||
@@ -184,6 +186,8 @@ function UIManager:close(widget, refreshtype, refreshregion)
|
||||
local dirty = false
|
||||
-- first send close event to widget
|
||||
widget:handleEvent(Event:new("CloseWidget"))
|
||||
-- make it enabled by default and check any widget that disable it
|
||||
Input.disable_double_tap = false
|
||||
-- then remove all reference to that widget on stack and update
|
||||
for i = #self._window_stack, 1, -1 do
|
||||
if self._window_stack[i].widget == widget then
|
||||
|
||||
Reference in New Issue
Block a user