From d79cedd8da99345947f5b9fcb1ebc3a145cc4112 Mon Sep 17 00:00:00 2001
From: Cory Forsstrom <cforsstrom18@gmail.com>
Date: Sat, 24 Jun 2023 18:01:14 -0700
Subject: Add alignment to Viewport

---
 widget/src/scrollable.rs | 28 +++++++++++++++++++++++++++-
 1 file changed, 27 insertions(+), 1 deletion(-)

diff --git a/widget/src/scrollable.rs b/widget/src/scrollable.rs
index 79e5fe3e..3912f445 100644
--- a/widget/src/scrollable.rs
+++ b/widget/src/scrollable.rs
@@ -577,7 +577,15 @@ pub fn update<Message>(
                 content_bounds,
             );
 
-            notify_on_scroll(state, on_scroll, bounds, content_bounds, shell);
+            notify_on_scroll(
+                state,
+                on_scroll,
+                bounds,
+                content_bounds,
+                horizontal_alignment,
+                vertical_alignment,
+                shell,
+            );
 
             return event::Status::Captured;
         }
@@ -623,6 +631,8 @@ pub fn update<Message>(
                             on_scroll,
                             bounds,
                             content_bounds,
+                            horizontal_alignment,
+                            vertical_alignment,
                             shell,
                         );
                     }
@@ -669,6 +679,8 @@ pub fn update<Message>(
                         on_scroll,
                         bounds,
                         content_bounds,
+                        horizontal_alignment,
+                        vertical_alignment,
                         shell,
                     );
 
@@ -705,6 +717,8 @@ pub fn update<Message>(
                         on_scroll,
                         bounds,
                         content_bounds,
+                        horizontal_alignment,
+                        vertical_alignment,
                         shell,
                     );
                 }
@@ -746,6 +760,8 @@ pub fn update<Message>(
                         on_scroll,
                         bounds,
                         content_bounds,
+                        horizontal_alignment,
+                        vertical_alignment,
                         shell,
                     );
                 }
@@ -782,6 +798,8 @@ pub fn update<Message>(
                         on_scroll,
                         bounds,
                         content_bounds,
+                        horizontal_alignment,
+                        vertical_alignment,
                         shell,
                     );
 
@@ -997,6 +1015,8 @@ fn notify_on_scroll<Message>(
     on_scroll: &Option<Box<dyn Fn(Viewport) -> Message + '_>>,
     bounds: Rectangle,
     content_bounds: Rectangle,
+    horizontal_alignment: Alignment,
+    vertical_alignment: Alignment,
     shell: &mut Shell<'_, Message>,
 ) {
     if let Some(on_scroll) = on_scroll {
@@ -1011,6 +1031,8 @@ fn notify_on_scroll<Message>(
             offset_y: state.offset_y,
             bounds,
             content_bounds,
+            horizontal_alignment,
+            vertical_alignment,
         };
 
         // Don't publish redundant viewports to shell
@@ -1103,6 +1125,10 @@ pub struct Viewport {
     pub bounds: Rectangle,
     /// The content bounds of the [`Scrollable`].
     pub content_bounds: Rectangle,
+    /// The horizontal [`Alignment`] of the [`Scrollable`].
+    pub horizontal_alignment: Alignment,
+    /// The vertical [`Alignment`] of the [`Scrollable`].
+    pub vertical_alignment: Alignment,
 }
 
 impl Viewport {
-- 
cgit