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>
pull/7583/head
gbyl 3 years ago committed by GitHub
parent dde3c80e73
commit 617ed2c078
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -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",
},

@ -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",
},

Loading…
Cancel
Save