diff --git a/CHANGELOG.md b/CHANGELOG.md index db86e15ab..358dffd4e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,7 +8,7 @@ All notable changes to this project will be documented in this file. - motion photo detection for xml variant of google container item - HEIF size detection for some corrupted files -- viewer transition direction for RTL locales +- viewer transition direction & effects for RTL locales ## [v1.10.3] - 2024-01-29 diff --git a/lib/widgets/viewer/controls/transitions.dart b/lib/widgets/viewer/controls/transitions.dart index e76d699b1..0adf9b870 100644 --- a/lib/widgets/viewer/controls/transitions.dart +++ b/lib/widgets/viewer/controls/transitions.dart @@ -1,3 +1,4 @@ +import 'package:aves/widgets/common/extensions/build_context.dart'; import 'package:flutter/widgets.dart'; class PageTransitionEffects { @@ -14,7 +15,7 @@ class PageTransitionEffects { final position = (pageController.page! - index).clamp(-1.0, 1.0); final width = pageController.position.viewportDimension; opacity = (1 - position.abs()).clamp(0, 1); - dx = position * width; + dx = position * width * (context.isRtl ? -1 : 1); if (zoomIn) { scale = 1 + position; } @@ -42,7 +43,7 @@ class PageTransitionEffects { final position = (pageController.page! - index).clamp(-1.0, 1.0); final width = pageController.position.viewportDimension; if (parallax) { - dx = position * width / 2; + dx = position * width / 2 * (context.isRtl ? -1 : 1); } } return ClipRect( @@ -64,7 +65,7 @@ class PageTransitionEffects { final position = (pageController.page! - index).clamp(-1.0, 1.0); final width = pageController.position.viewportDimension; opacity = (1 - position.abs()).roundToDouble().clamp(0, 1); - dx = position * width; + dx = position * width * (context.isRtl ? -1 : 1); } return Opacity( opacity: opacity,