mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
[sdl] Add support arrow key for next/prev page (#5149)
Close: #4997 This PR add support arrow key and mouse scroll wheel for next/previous page. - Document in page mode: PageDown, Arrow down, Arrow right - go to next page PageUp, Arrow up, arrow left - go to prev page Mouse scroll wheel down - go to next page Mouse scroll wheel up - go to prev page - Document in scroll mode: PageDown, Arrow right - go to next page PageUp, Arrow, arrow left - go to prev page Arrow down - scroll document down Arrow up - scroll document up Mouse scroll wheel down - scroll document down Mouse scroll wheel up - scroll document up
This commit is contained in:
@@ -43,13 +43,22 @@ function ReaderPaging:init()
|
||||
self.key_events = {}
|
||||
if Device:hasKeys() then
|
||||
self.key_events.GotoNextPage = {
|
||||
{Input.group.PgFwd}, doc = "go to next page",
|
||||
{ {"RPgFwd", "LPgFwd", "Right" } }, doc = "go to next page",
|
||||
event = "GotoViewRel", args = 1,
|
||||
}
|
||||
self.key_events.GotoPrevPage = {
|
||||
{Input.group.PgBack}, doc = "go to previous page",
|
||||
{ { "RPgBack", "LPgBack", "Left" } }, doc = "go to previous page",
|
||||
event = "GotoViewRel", args = -1,
|
||||
}
|
||||
self.key_events.GotoNextPos = {
|
||||
{ {"Down" } }, doc = "go to next position",
|
||||
event = "GotoPosRel", args = 1,
|
||||
}
|
||||
self.key_events.GotoPrevPos = {
|
||||
{ { "Up" } }, doc = "go to previous position",
|
||||
event = "GotoPosRel", args = -1,
|
||||
}
|
||||
|
||||
end
|
||||
if Device:hasKeyboard() then
|
||||
self.key_events.GotoFirst = {
|
||||
@@ -396,8 +405,13 @@ function ReaderPaging:onPan(_, ges)
|
||||
if self.ui.gesture and self.ui.gesture.multiswipes_enabled then
|
||||
relative_type = "relative_delayed"
|
||||
end
|
||||
self:onPanningRel(self.last_pan_relative_y - ges[relative_type].y)
|
||||
self.last_pan_relative_y = ges[relative_type].y
|
||||
-- this is only used when mouse wheel is used
|
||||
if ges.mousewheel_direction and not self.view.page_scroll then
|
||||
self:onGotoViewRel(-1 * ges.mousewheel_direction)
|
||||
else
|
||||
self:onPanningRel(self.last_pan_relative_y - ges[relative_type].y)
|
||||
self.last_pan_relative_y = ges[relative_type].y
|
||||
end
|
||||
end
|
||||
return true
|
||||
end
|
||||
@@ -455,6 +469,16 @@ function ReaderPaging:onGotoViewRel(diff)
|
||||
return true
|
||||
end
|
||||
|
||||
function ReaderPaging:onGotoPosRel(diff)
|
||||
if self.view.page_scroll then
|
||||
self:onPanningRel(100*diff)
|
||||
else
|
||||
self:onGotoPageRel(diff)
|
||||
end
|
||||
self:setPagePosition(self:getTopPage(), self:getTopPosition())
|
||||
return true
|
||||
end
|
||||
|
||||
function ReaderPaging:onPanningRel(diff)
|
||||
if self.view.page_scroll then
|
||||
self:onScrollPanRel(diff)
|
||||
|
||||
Reference in New Issue
Block a user