Page turn animations

Kindle PW5 (MTK) with hardware support
Currently only in Crengine
This commit is contained in:
yparitcher
2022-04-06 10:42:29 -04:00
parent ca423f2887
commit 54ead5fc88
6 changed files with 30 additions and 1 deletions

View File

@@ -1006,6 +1006,9 @@ function ReaderRolling:_gotoPos(new_pos, do_dim_area)
else
self.view.dim_area:clear()
end
if self.current_pos and not UIManager.currently_scrolling then
self.ui:handleEvent(Event:new("PageChangeAnimation", new_pos > self.current_pos))
end
self.ui.document:gotoPos(new_pos)
-- The current page we get in scroll mode may be a bit innacurate,
-- but we give it anyway to onPosUpdate so footer and statistics can
@@ -1038,6 +1041,9 @@ function ReaderRolling:_gotoPage(new_page, free_first_page, internal)
end
end
end
if self.current_page then
self.ui:handleEvent(Event:new("PageChangeAnimation", new_page > self.current_page))
end
self.ui.document:gotoPage(new_page, internal)
if self.view.view_mode == "page" then
self.ui:handleEvent(Event:new("PageUpdate", self.ui.document:getCurrentPage()))

View File

@@ -889,6 +889,14 @@ function ReaderView:onRotationUpdate(rotation)
self:recalculate()
end
function ReaderView:onPageChangeAnimation(forward)
if Device:canDoSwipeAnimation() and G_reader_settings:isTrue("swipe_animations") then
if self.inverse_reading_order then forward = not forward end
Screen:setSwipeAnimations(true)
Screen:setSwipeDirection(forward)
end
end
function ReaderView:onReaderFooterVisibilityChange()
-- Don't bother ReaderRolling with this nonsense, the footer's height is NOT handled via visible_area there ;)
if self.ui.paging and self.state.page then