mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
Gestures: Allow disabling tap and/or swipes for page turns (#7572)
Co-authored-by: gbyl <gbyl@users.noreply.github.com> Co-authored-by: NiLuJe <ninuje@gmail.com>
This commit is contained in:
@@ -132,13 +132,21 @@ function ReaderPaging:setupTapTouchZones()
|
||||
id = "tap_forward",
|
||||
ges = "tap",
|
||||
screen_zone = forward_zone,
|
||||
handler = function() return self:onGotoViewRel(1) end,
|
||||
handler = function()
|
||||
if G_reader_settings:nilOrFalse("page_turns_disable_tap") then
|
||||
return self:onGotoViewRel(1)
|
||||
end
|
||||
end,
|
||||
},
|
||||
{
|
||||
id = "tap_backward",
|
||||
ges = "tap",
|
||||
screen_zone = backward_zone,
|
||||
handler = function() return self:onGotoViewRel(-1) end,
|
||||
handler = function()
|
||||
if G_reader_settings:nilOrFalse("page_turns_disable_tap") then
|
||||
return self:onGotoViewRel(-1)
|
||||
end
|
||||
end,
|
||||
},
|
||||
})
|
||||
end
|
||||
@@ -159,7 +167,7 @@ function ReaderPaging:setupTouchZones()
|
||||
screen_zone = {
|
||||
ratio_x = 0, ratio_y = 0, ratio_w = 1, ratio_h = 1,
|
||||
},
|
||||
handler = function(ges) return self:onSwipe(nil, ges) end
|
||||
handler = function(ges) return self:onSwipe(nil, ges) end,
|
||||
},
|
||||
{
|
||||
id = "paging_pan",
|
||||
@@ -168,7 +176,7 @@ function ReaderPaging:setupTouchZones()
|
||||
screen_zone = {
|
||||
ratio_x = 0, ratio_y = 0, ratio_w = 1, ratio_h = 1,
|
||||
},
|
||||
handler = function(ges) return self:onPan(nil, ges) end
|
||||
handler = function(ges) return self:onPan(nil, ges) end,
|
||||
},
|
||||
{
|
||||
id = "paging_pan_release",
|
||||
@@ -176,7 +184,7 @@ function ReaderPaging:setupTouchZones()
|
||||
screen_zone = {
|
||||
ratio_x = 0, ratio_y = 0, ratio_w = 1, ratio_h = 1,
|
||||
},
|
||||
handler = function(ges) return self:onPanRelease(nil, ges) end
|
||||
handler = function(ges) return self:onPanRelease(nil, ges) end,
|
||||
},
|
||||
})
|
||||
end
|
||||
@@ -418,16 +426,20 @@ function ReaderPaging:onSwipe(_, ges)
|
||||
elseif self.page_flipping_mode and self.original_page then
|
||||
self:_gotoPage(self.original_page)
|
||||
elseif direction == "west" then
|
||||
if self.inverse_reading_order then
|
||||
self:onGotoViewRel(-1)
|
||||
else
|
||||
self:onGotoViewRel(1)
|
||||
if G_reader_settings:nilOrFalse("page_turns_disable_swipe") then
|
||||
if self.inverse_reading_order then
|
||||
self:onGotoViewRel(-1)
|
||||
else
|
||||
self:onGotoViewRel(1)
|
||||
end
|
||||
end
|
||||
elseif direction == "east" then
|
||||
if self.inverse_reading_order then
|
||||
self:onGotoViewRel(1)
|
||||
else
|
||||
self:onGotoViewRel(-1)
|
||||
if G_reader_settings:nilOrFalse("page_turns_disable_swipe") then
|
||||
if self.inverse_reading_order then
|
||||
self:onGotoViewRel(1)
|
||||
else
|
||||
self:onGotoViewRel(-1)
|
||||
end
|
||||
end
|
||||
else
|
||||
-- update footer (time & battery)
|
||||
|
||||
@@ -349,13 +349,21 @@ function ReaderRolling:setupTouchZones()
|
||||
id = "tap_forward",
|
||||
ges = "tap",
|
||||
screen_zone = forward_zone,
|
||||
handler = function() return self:onGotoViewRel(1) end,
|
||||
handler = function()
|
||||
if G_reader_settings:nilOrFalse("page_turns_disable_tap") then
|
||||
return self:onGotoViewRel(1)
|
||||
end
|
||||
end,
|
||||
},
|
||||
{
|
||||
id = "tap_backward",
|
||||
ges = "tap",
|
||||
screen_zone = backward_zone,
|
||||
handler = function() return self:onGotoViewRel(-1) end,
|
||||
handler = function()
|
||||
if G_reader_settings:nilOrFalse("page_turns_disable_tap") then
|
||||
return self:onGotoViewRel(-1)
|
||||
end
|
||||
end,
|
||||
},
|
||||
{
|
||||
id = "rolling_swipe",
|
||||
@@ -363,7 +371,7 @@ function ReaderRolling:setupTouchZones()
|
||||
screen_zone = {
|
||||
ratio_x = 0, ratio_y = 0, ratio_w = 1, ratio_h = 1,
|
||||
},
|
||||
handler = function(ges) return self:onSwipe(nil, ges) end
|
||||
handler = function(ges) return self:onSwipe(nil, ges) end,
|
||||
},
|
||||
{
|
||||
id = "rolling_pan",
|
||||
@@ -372,7 +380,7 @@ function ReaderRolling:setupTouchZones()
|
||||
screen_zone = {
|
||||
ratio_x = 0, ratio_y = 0, ratio_w = 1, ratio_h = 1,
|
||||
},
|
||||
handler = function(ges) return self:onPan(nil, ges) end
|
||||
handler = function(ges) return self:onPan(nil, ges) end,
|
||||
},
|
||||
})
|
||||
end
|
||||
@@ -509,16 +517,20 @@ end
|
||||
function ReaderRolling:onSwipe(_, ges)
|
||||
local direction = BD.flipDirectionIfMirroredUILayout(ges.direction)
|
||||
if direction == "west" then
|
||||
if self.inverse_reading_order then
|
||||
self:onGotoViewRel(-1)
|
||||
else
|
||||
self:onGotoViewRel(1)
|
||||
if G_reader_settings:nilOrFalse("page_turns_disable_swipe") then
|
||||
if self.inverse_reading_order then
|
||||
self:onGotoViewRel(-1)
|
||||
else
|
||||
self:onGotoViewRel(1)
|
||||
end
|
||||
end
|
||||
elseif direction == "east" then
|
||||
if self.inverse_reading_order then
|
||||
self:onGotoViewRel(1)
|
||||
else
|
||||
self:onGotoViewRel(-1)
|
||||
if G_reader_settings:nilOrFalse("page_turns_disable_swipe") then
|
||||
if self.inverse_reading_order then
|
||||
self:onGotoViewRel(1)
|
||||
else
|
||||
self:onGotoViewRel(-1)
|
||||
end
|
||||
end
|
||||
else
|
||||
-- update footer (time & battery)
|
||||
|
||||
@@ -199,6 +199,7 @@ common_settings.screen_rotation = require("ui/elements/screen_rotation_menu_tabl
|
||||
common_settings.screen_dpi = require("ui/elements/screen_dpi_menu_table")
|
||||
common_settings.screen_eink_opt = require("ui/elements/screen_eink_opt_menu_table")
|
||||
common_settings.menu_activate = require("ui/elements/menu_activate")
|
||||
common_settings.page_turns = require("ui/elements/page_turns")
|
||||
common_settings.screen_disable_double_tab = require("ui/elements/screen_disable_double_tap_table")
|
||||
common_settings.ignore_hold_corners = {
|
||||
text = _("Ignore hold on corners"),
|
||||
|
||||
@@ -90,6 +90,7 @@ local order = {
|
||||
"gesture_intervals",
|
||||
"----------------------------",
|
||||
"menu_activate",
|
||||
"page_turns",
|
||||
"ignore_hold_corners",
|
||||
"screen_disable_double_tab",
|
||||
},
|
||||
|
||||
25
frontend/ui/elements/page_turns.lua
Normal file
25
frontend/ui/elements/page_turns.lua
Normal file
@@ -0,0 +1,25 @@
|
||||
local _ = require("gettext")
|
||||
|
||||
return {
|
||||
text = _("Page turns"),
|
||||
sub_item_table = {
|
||||
{
|
||||
text = _("Disable taps"),
|
||||
checked_func = function()
|
||||
return G_reader_settings:isTrue("page_turns_disable_tap")
|
||||
end,
|
||||
callback = function()
|
||||
G_reader_settings:toggle("page_turns_disable_tap")
|
||||
end
|
||||
},
|
||||
{
|
||||
text = _("Disable swipes"),
|
||||
checked_func = function()
|
||||
return G_reader_settings:isTrue("page_turns_disable_swipe")
|
||||
end,
|
||||
callback = function()
|
||||
G_reader_settings:toggle("page_turns_disable_swipe")
|
||||
end
|
||||
},
|
||||
}
|
||||
}
|
||||
@@ -133,6 +133,7 @@ local order = {
|
||||
"follow_links",
|
||||
"----------------------------",
|
||||
"menu_activate",
|
||||
"page_turns",
|
||||
"ignore_hold_corners",
|
||||
"screen_disable_double_tab",
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user