From 0e9c1ab192279d1a3a88815080e043f434aa380e Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Thu, 22 Dec 2022 14:29:24 +0100 Subject: Add `Renderer` argument to `operate` --- lazy/src/component.rs | 2 ++ lazy/src/lazy.rs | 2 ++ 2 files changed, 4 insertions(+) (limited to 'lazy/src') diff --git a/lazy/src/component.rs b/lazy/src/component.rs index 3d7b8758..ad15d69d 100644 --- a/lazy/src/component.rs +++ b/lazy/src/component.rs @@ -234,6 +234,7 @@ where &self, tree: &mut Tree, layout: Layout<'_>, + renderer: &Renderer, operation: &mut dyn widget::Operation, ) { struct MapOperation<'a, B> { @@ -274,6 +275,7 @@ where element.as_widget().operate( &mut tree.children[0], layout, + renderer, &mut MapOperation { operation }, ); }); diff --git a/lazy/src/lazy.rs b/lazy/src/lazy.rs index 2611dd10..ec35e8f0 100644 --- a/lazy/src/lazy.rs +++ b/lazy/src/lazy.rs @@ -130,12 +130,14 @@ where &self, tree: &mut Tree, layout: Layout<'_>, + renderer: &Renderer, operation: &mut dyn widget::Operation, ) { self.with_element(|element| { element.as_widget().operate( &mut tree.children[0], layout, + renderer, operation, ); }); -- cgit From 5f2ec138d7b6793f781aab16ec59e0224ac4edef Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Thu, 22 Dec 2022 14:32:25 +0100 Subject: Implement `Widget::operate` for `Responsive` --- lazy/src/responsive.rs | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) (limited to 'lazy/src') diff --git a/lazy/src/responsive.rs b/lazy/src/responsive.rs index 5e1b5dff..945c935a 100644 --- a/lazy/src/responsive.rs +++ b/lazy/src/responsive.rs @@ -3,8 +3,8 @@ use iced_native::layout::{self, Layout}; use iced_native::mouse; use iced_native::overlay; use iced_native::renderer; -use iced_native::widget::horizontal_space; use iced_native::widget::tree::{self, Tree}; +use iced_native::widget::{self, horizontal_space}; use iced_native::{ Clipboard, Element, Length, Point, Rectangle, Shell, Size, Widget, }; @@ -142,6 +142,29 @@ where layout::Node::new(limits.max()) } + fn operate( + &self, + tree: &mut Tree, + layout: Layout<'_>, + renderer: &Renderer, + operation: &mut dyn widget::Operation, + ) { + let state = tree.state.downcast_mut::(); + let mut content = self.content.borrow_mut(); + + content.resolve( + &mut state.tree.borrow_mut(), + renderer, + layout, + &self.view, + |tree, renderer, layout, element| { + element + .as_widget() + .operate(tree, layout, renderer, operation); + }, + ); + } + fn on_event( &mut self, tree: &mut Tree, -- cgit