diff options
Diffstat (limited to 'lazy/src')
| -rw-r--r-- | lazy/src/component.rs | 17 | ||||
| -rw-r--r-- | lazy/src/lazy.rs | 11 | ||||
| -rw-r--r-- | lazy/src/responsive.rs | 11 | 
3 files changed, 33 insertions, 6 deletions
| diff --git a/lazy/src/component.rs b/lazy/src/component.rs index d8f21f8a..b23da9f7 100644 --- a/lazy/src/component.rs +++ b/lazy/src/component.rs @@ -227,6 +227,10 @@ where          local_shell.revalidate_layout(|| shell.invalidate_layout()); +        if let Some(redraw_request) = local_shell.redraw_request() { +            shell.request_redraw(redraw_request); +        } +          if !local_messages.is_empty() {              let mut heads = self.state.take().unwrap().into_heads(); @@ -307,6 +311,8 @@ where          }          self.with_element(|element| { +            tree.diff_children(std::slice::from_ref(&element)); +              element.as_widget().operate(                  &mut tree.children[0],                  layout, @@ -451,9 +457,9 @@ where          position: Point,      ) -> layout::Node {          self.with_overlay_maybe(|overlay| { -            let vector = position - overlay.position(); +            let translation = position - overlay.position(); -            overlay.layout(renderer, bounds).translate(vector) +            overlay.layout(renderer, bounds, translation)          })          .unwrap_or_default()      } @@ -559,4 +565,11 @@ where          event_status      } + +    fn is_over(&self, layout: Layout<'_>, cursor_position: Point) -> bool { +        self.with_overlay_maybe(|overlay| { +            overlay.is_over(layout, cursor_position) +        }) +        .unwrap_or_default() +    }  } diff --git a/lazy/src/lazy.rs b/lazy/src/lazy.rs index 933def96..5e909a49 100644 --- a/lazy/src/lazy.rs +++ b/lazy/src/lazy.rs @@ -313,9 +313,9 @@ where          position: Point,      ) -> layout::Node {          self.with_overlay_maybe(|overlay| { -            let vector = position - overlay.position(); +            let translation = position - overlay.position(); -            overlay.layout(renderer, bounds).translate(vector) +            overlay.layout(renderer, bounds, translation)          })          .unwrap_or_default()      } @@ -372,6 +372,13 @@ where          })          .unwrap_or(iced_native::event::Status::Ignored)      } + +    fn is_over(&self, layout: Layout<'_>, cursor_position: Point) -> bool { +        self.with_overlay_maybe(|overlay| { +            overlay.is_over(layout, cursor_position) +        }) +        .unwrap_or_default() +    }  }  impl<'a, Message, Renderer, Dependency, View> diff --git a/lazy/src/responsive.rs b/lazy/src/responsive.rs index 52badda2..93069493 100644 --- a/lazy/src/responsive.rs +++ b/lazy/src/responsive.rs @@ -356,9 +356,9 @@ where          position: Point,      ) -> layout::Node {          self.with_overlay_maybe(|overlay| { -            let vector = position - overlay.position(); +            let translation = position - overlay.position(); -            overlay.layout(renderer, bounds).translate(vector) +            overlay.layout(renderer, bounds, translation)          })          .unwrap_or_default()      } @@ -415,4 +415,11 @@ where          })          .unwrap_or(iced_native::event::Status::Ignored)      } + +    fn is_over(&self, layout: Layout<'_>, cursor_position: Point) -> bool { +        self.with_overlay_maybe(|overlay| { +            overlay.is_over(layout, cursor_position) +        }) +        .unwrap_or_default() +    }  } | 
