From 25006b9c6f2ae909d86871d3a13631d518c07158 Mon Sep 17 00:00:00 2001
From: Héctor Ramón Jiménez <hector@hecrj.dev>
Date: Tue, 21 Nov 2023 14:41:22 +0100
Subject: Fix `Overlay` composition

Translations were not easily composable.
---
 widget/src/lazy.rs            | 5 +++--
 widget/src/lazy/component.rs  | 3 ++-
 widget/src/lazy/responsive.rs | 6 ++++--
 widget/src/overlay/menu.rs    | 1 +
 widget/src/tooltip.rs         | 1 +
 5 files changed, 11 insertions(+), 5 deletions(-)

(limited to 'widget')

diff --git a/widget/src/lazy.rs b/widget/src/lazy.rs
index 589dd938..167a055d 100644
--- a/widget/src/lazy.rs
+++ b/widget/src/lazy.rs
@@ -18,7 +18,7 @@ use crate::core::widget::tree::{self, Tree};
 use crate::core::widget::{self, Widget};
 use crate::core::Element;
 use crate::core::{
-    self, Clipboard, Hasher, Length, Point, Rectangle, Shell, Size,
+    self, Clipboard, Hasher, Length, Point, Rectangle, Shell, Size, Vector,
 };
 use crate::runtime::overlay::Nested;
 
@@ -333,9 +333,10 @@ where
         renderer: &Renderer,
         bounds: Size,
         position: Point,
+        translation: Vector,
     ) -> layout::Node {
         self.with_overlay_maybe(|overlay| {
-            overlay.layout(renderer, bounds, position)
+            overlay.layout(renderer, bounds, position, translation)
         })
         .unwrap_or_default()
     }
diff --git a/widget/src/lazy/component.rs b/widget/src/lazy/component.rs
index d454b72b..ad0c3823 100644
--- a/widget/src/lazy/component.rs
+++ b/widget/src/lazy/component.rs
@@ -577,9 +577,10 @@ where
         renderer: &Renderer,
         bounds: Size,
         position: Point,
+        translation: Vector,
     ) -> layout::Node {
         self.with_overlay_maybe(|overlay| {
-            overlay.layout(renderer, bounds, position)
+            overlay.layout(renderer, bounds, position, translation)
         })
         .unwrap_or_default()
     }
diff --git a/widget/src/lazy/responsive.rs b/widget/src/lazy/responsive.rs
index ed471988..86d37b6c 100644
--- a/widget/src/lazy/responsive.rs
+++ b/widget/src/lazy/responsive.rs
@@ -6,7 +6,8 @@ use crate::core::renderer;
 use crate::core::widget;
 use crate::core::widget::tree::{self, Tree};
 use crate::core::{
-    self, Clipboard, Element, Length, Point, Rectangle, Shell, Size, Widget,
+    self, Clipboard, Element, Length, Point, Rectangle, Shell, Size, Vector,
+    Widget,
 };
 use crate::horizontal_space;
 use crate::runtime::overlay::Nested;
@@ -367,9 +368,10 @@ where
         renderer: &Renderer,
         bounds: Size,
         position: Point,
+        translation: Vector,
     ) -> layout::Node {
         self.with_overlay_maybe(|overlay| {
-            overlay.layout(renderer, bounds, position)
+            overlay.layout(renderer, bounds, position, translation)
         })
         .unwrap_or_default()
     }
diff --git a/widget/src/overlay/menu.rs b/widget/src/overlay/menu.rs
index b293f9fa..5098fa17 100644
--- a/widget/src/overlay/menu.rs
+++ b/widget/src/overlay/menu.rs
@@ -236,6 +236,7 @@ where
         renderer: &Renderer,
         bounds: Size,
         position: Point,
+        _translation: Vector,
     ) -> layout::Node {
         let space_below = bounds.height - (position.y + self.target_height);
         let space_above = position.y;
diff --git a/widget/src/tooltip.rs b/widget/src/tooltip.rs
index b041d2e9..d5ee3de2 100644
--- a/widget/src/tooltip.rs
+++ b/widget/src/tooltip.rs
@@ -325,6 +325,7 @@ where
         renderer: &Renderer,
         bounds: Size,
         position: Point,
+        _translation: Vector,
     ) -> layout::Node {
         let viewport = Rectangle::with_size(bounds);
 
-- 
cgit