diff --git a/frontend/ui/reader/readerpaging.lua b/frontend/ui/reader/readerpaging.lua index 0eeb4c7fd..2f6f16c51 100644 --- a/frontend/ui/reader/readerpaging.lua +++ b/frontend/ui/reader/readerpaging.lua @@ -7,6 +7,7 @@ ReaderPaging = InputContainer:new{ page_area = nil, show_overlap_enable = true, overlap = scaleByDPI(20), + flip_steps = {0,1,2,5,10,20,50,100} } function ReaderPaging:init() @@ -169,15 +170,14 @@ function ReaderPaging:updateFlippingPage(page) end function ReaderPaging:flipping(flipping_page, flipping_ges) - local read = flipping_page - 1 - local unread = self.number_of_pages - flipping_page local whole = self.number_of_pages - local rel_proportion = flipping_ges.distance / Screen:getWidth() + local steps = #self.flip_steps + local stp_proportion = flipping_ges.distance / Screen:getWidth() local abs_proportion = flipping_ges.distance / Screen:getHeight() if flipping_ges.direction == "east" then - self:gotoPage(flipping_page - math.floor(read*rel_proportion)) + self:gotoPage(flipping_page - self.flip_steps[math.ceil(steps*stp_proportion)]) elseif flipping_ges.direction == "west" then - self:gotoPage(flipping_page + math.floor(unread*rel_proportion)) + self:gotoPage(flipping_page + self.flip_steps[math.ceil(steps*stp_proportion)]) elseif flipping_ges.direction == "south" then self:gotoPage(flipping_page - math.floor(whole*abs_proportion)) elseif flipping_ges.direction == "north" then